3个参与者之间的HTTP Restful应用程序

3个参与者之间的HTTP Restful应用程序,rest,Rest,我对这一论点是新手,我希望不要问一些完全错误的问题。我正在开发一个由三个参与者组成的应用程序:A、B、C A使用REST与B通信。 B使用REST与C通信 A------>B------>C A是一个web MVC应用程序 B是一个实现HTTP REST的通用web服务器,它存储信息并将信息从a传递到C,反之亦然 C是侦听请求的服务器。 我需要在每个参与者(服务器部分和客户机部分)上实现HTTP REST,但是,除了编程语言之外,我在理解这三个参与者通信的逻辑方面有一些问题 A必须具备的正确行

我对这一论点是新手,我希望不要问一些完全错误的问题。我正在开发一个由三个参与者组成的应用程序:A、B、C

A使用REST与B通信。 B使用REST与C通信

A------>B------>C

A是一个web MVC应用程序

B是一个实现HTTP REST的通用web服务器,它存储信息并将信息从a传递到C,反之亦然

C是侦听请求的服务器。

我需要在每个参与者(服务器部分和客户机部分)上实现HTTP REST,但是,除了编程语言之外,我在理解这三个参与者通信的逻辑方面有一些问题

A必须具备的正确行为是什么? 我用一个例子来更好地解释:

一般情况是:A必须通过httpget请求向C请求图书目录,而请求正在通过B

一,。A正在让HTTP访问B,它回复200 OK(B无法提供图书目录,因为它没有。)

二,。B向C发出HTTP GET请求,C回复200OK,在回复的正文中会有图书目录

三,。既然B有了图书目录,怎么能把它传给A呢?有职位吗?


是所有演员的行为都是正确的,还是我做错了什么?

如果通话速度足够快,B可以在与C通话时保持A的等待,并将目录作为A第一次通话的回应返回

A ---> GET /books/ ---> B
|                       | ---> GET /books/ ---> C
|                       |                       |
|                       |<----- RESPONSE -------|
|<----- RESPONSE -------+
A-->GET/books/-->B
||-->GET/books/-->C
|                       |                       |

||来自维基百科关于REST的优秀文章

客户端通常无法判断它是直接连接到终端服务器,还是连接到中间层。中间服务器可以通过实现负载平衡和提供共享缓存来提高系统的可伸缩性。它们还可以强制执行安全策略

从客户端应用程序A的角度来看,直接轮询服务器B和轮询服务器C之间应该没有区别。B只是作为中间人。因此,在B将a的请求转发给C并得到200响应之前,B不应该向a返回200响应

流程可能如下所示

A: GET(DomainOfB/someresource)
A: Wait for response from B
B: GET(DomainOfC/someresource)
B: Wait for response from C
C: Send response to B with 200 code if appropriate
B: Forward response from C to A.