REST api : 正确要求一个动作

REST api : correctly ask for an action

我目前正在研究 REST api。我读过几次如何以正确的方式处理端点,使用协议(post、put、...)来定义应该执行的操作。

假设我有一个引号列表。我有:

现在我想添加能力:

我应该使用哪个端点? /quote/ID/share 似乎是个糟糕的主意。我想到了一个 POST 到 /quote/ID 和一个 "action" 参数,它告诉脚本对报价执行什么操作,这是正确的吗?

尝试将 API 与您的应用程序逻辑分开。从 API 你得到了报价,从现在开始 API 不应该关心你对这些数据做了什么。将引用标记为收藏夹也是如此。如何标记某些内容是您的应用程序和用户数据库的问题。同样,API 应该只关心正确回答您的 GET。

将 REST API 视为一个数据库——您可以从那里获取数据,您可以 PUT 或 POST 一些数据,但是共享或标记之类的事情应该在应用程序中完成。

编辑

关于端点。

  • GET/POST/PUT /quote[s] 应该只关心引号;
  • PUT/POST /user/{userId}/action 和 POST 数据,如 {"type": "share", "target": "otherUserId", "quoteId": 123} 可用于在数据库中保存 关于操作的数据