结合 REST API 和 RPC
Posted
技术标签:
【中文标题】结合 REST API 和 RPC【英文标题】:Combining REST API with RPC 【发布时间】:2014-10-10 13:08:56 【问题描述】:我正在开发一个类似 CRM 的应用程序,该应用程序通过 REST api 管理公司列表:
GET /api/companies
POST /api/companies
PUT /api/company/1
DELETE /api/company/1
现在宣布了一项新要求:API 必须提供一种将某些属性从一家公司复制到另一家公司的方法。有几个属性集可以独立复制 - 例如,经理列表和付款信息。
将这种方法添加到现有 API 的最佳方式是什么?
【问题讨论】:
【参考方案1】:您能否澄清一下您的 PUT 和 POST 操作是做什么的?
如果我必须设计这样的 API,我会这样做
GET /api/companies -> 获取公司列表 POST /api/companies -> 将新公司添加到列表中(即,它将 在 /api/companies 列表中添加一个新的并为 新公司为 /api/companies/1) PUT /api/companies/1 -> 修改公司信息 DELETE /api/companies/1 -> 删除公司在这种情况下,如果我想将一些信息从公司 1 复制到公司 2
GET /api/companies/1 GET /api/companies/2将必要的信息从公司 1 状态复制到公司 2 状态,然后
PUT /api/companies/2这是您需要的,还是您需要在单个 HTTP 操作中复制这些信息?
【讨论】:
糟糕,我混淆了 PUT 和 POST 网址 - 现在已修复。 感谢您的回答。然而,将整个数据对象发送到客户端然后再发送回服务器似乎是多余的。难道没有任何命名操作的约定与 CRUD 操作不对应吗?以上是关于结合 REST API 和 RPC的主要内容,如果未能解决你的问题,请参考以下文章
REST API:使用 C# 结合登录信息和 API 操作?
独立的 REST API 和独立的 React SPA 与 Django 和 React 的结合
使用 FLASK 将 REST API 与 Web 界面相结合的最佳实践
如何将 PayPal 智能支付按钮与 PHP V2 的 REST API SDK 结合起来?