调用另一个API的API的HTTP方法是什么?

调用另一个API的API的HTTP方法是什么?,api,rest,api-design,Api,Rest,Api Design,我正在编写一个服务,其中客户端对我的服务进行API调用,然后我的服务增加请求负载,然后将其传递给另一个服务。对于我的API,如果HTTP方法不与数据库交互,它应该是什么 HTTP方法应该是什么 关键思想:服务器与另一个API(而不是数据库或文件系统)通信这一事实是一个实现细节;实现的细节不应该泄露到消息中 假设传入请求具有消息体;GET、HEAD和DELETE都是正确的,因为这些方法没有为有效负载定义语义 POST/PUT/PATCH都是可能的 理想情况下,您将匹配用于与后端对话的方法令牌。这就

我正在编写一个服务,其中客户端对我的服务进行API调用,然后我的服务增加请求负载,然后将其传递给另一个服务。对于我的API,如果HTTP方法不与数据库交互,它应该是什么

HTTP方法应该是什么

关键思想:服务器与另一个API(而不是数据库或文件系统)通信这一事实是一个实现细节;实现的细节不应该泄露到消息中

假设传入请求具有消息体;GET、HEAD和DELETE都是正确的,因为这些方法没有为有效负载定义语义

POST/PUT/PATCH都是可能的

理想情况下,您将匹配用于与后端对话的方法令牌。这就是反向代理的工作原理。毕竟,你只是在玩中间人,所以请求语义匹配不应该太令人惊讶。

当然,它们并不总是如此——如果您发现正在调用的API在其自身的设计中做出了糟糕的方法选择,那么您可能需要注入自己的语义


当有疑问时,REST原则之一,即“分层系统”约束,意味着:

每个组件都无法“看到”与其交互的直接层之外的内容

因此,您实际上不应该在“简单”和“代理”API调用之间做任何区别