REST最佳实践:Rest API可以发出请求吗?

时间:2013-09-19 16:26:42

标签: api rest

我的产品流从产品1发布到产品2,再回到产品1到REST apis。

我们希望保持我们的API RESTful并使用最佳实践 产品2向产品1提供反馈的最佳方式是什么。

  • 可以将事件传递给他自己的API命名空间/项目,以POST到1的API。
  • 或者2应该直接调用1的API,只要功能在2中。

换句话说,REST API无法进行出站调用,或者REST API严格意义上是仅在输入上等待的观察服务。

1 个答案:

答案 0 :(得分:3)

回答您的第一个问题“REST API可以发出请求吗?”,我会说“不”......但服务API背后的应用程序肯定可以向其他REST API发出请求。

REST API没有为其他API指定“请求”......您应该从每个用户/ API客户端的角度考虑REST API,而不是考虑多个服务的“协调视图”,即另一个系统的级别视图。这意味着,服务1的用户将看到该服务的REST API,并且内部服务1可以调用服务2或其他服务,反之亦然,但服务1用户(API客户端)不应该感知它。所以,我想说REST API不是关于“出站调用”而是关于给定应用程序提供的“观察服务”,基本上是在REST中可以通过资源(具有给定URI)执行的动作(HTTP动词)。 / p>

详细了解您的情况,如果我理解正确,您可以调用服务1,这会触发对服务2的调用,并回复服务1.此服务从服务1调用到REST服务2的API,并且在许多情况下它可以等待来自服务2的响应(服务2将简单地回复服务1呼叫)。我们可以想象这种调用不是“阻塞”的更复杂的行为,当服务2完成一些计算(由服务1调用触发)时,这将导致需要从服务2到服务1 API“回”定义新的调用。在最后一种情况下,可以通过从服务2到服务1的某个API端点的一种“回调”调用来实现。

希望这有助于为您的情况带来一些启示。