繁体   English   中英

调用另一个REST API的REST API

[英]REST API that calls another REST API

使用REST API调用另一个REST API是正确的编程实践/软件设计吗? 如果不是,那么处理这种情况的推荐方法是什么?

如果我正确理解你的问题,那么是的 ,这是非常常见的。

您在描述以下内容,我推测:

客户端对Server-1进行API调用,Server-1在为此请求提供服务的过程中,向API Server-2发出另一个请求,从Server-2获取响应,进行一些重新格式化或数据提取,然后打包以响应客户端?

这种事情一直都在发生。 它的缺点是,除非Server-1和Server-2之间的连接延迟非常低(例如它们在同一网络上),并且使用的带宽很小,否则客户端将不得不等待很长时间响应。 显然,两个后端服务器之间可以有缓存来帮助缓解这种情况。

它几乎与Server-1对数据库进行SQL查询以响应请求相同。

对您的问题的另一种解释可能是客户端要求Server-1对Server-2将接收并异步执行的操作进行排队。 这也很常见(例如谷歌抓取你的网站的方式)。 此方案将使Server-1立即响应客户端,而无需等待Server-2执行的操作的结果。 在这种情况下,消息队列或数据库表通常用作服务器之间的中介。

另一种方法是让REST API(1)将请求详细信息存储到队列表中。 制作一个后端,检查该队列表每次让我们说100毫秒。 该后端将是将调用其他REST API的人(2)。

在REST API(1)中,只需创建一个循环,检查队列中的事务是否已被处理。 如果是,请获取流程详细信息并将其返回给客户端,如果不是,则继续循环直到流程完成

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM