REST api:正确地请求一个动作

时间:2015-06-22 13:40:53

标签: api rest endpoint

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

假设我有一份引用列表。我有:

  • 一个GET端点/引用,让我得到所有引号
  • 发布新报价的POST /引用
  • 获取单引号的GET /引号/ ID
  • 更新报价的PUT / quote / ID。

现在我想添加以下功能:

  • 与其他会员分享报价
  • 将报价标记为收藏
  • 取消标记

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

1 个答案:

答案 0 :(得分:2)

尝试将API与应用程序逻辑分开。从API开始,你从现在开始获取引用和API不应该关心你对这些数据的处理。同样标记引号为收藏夹。这是您的应用程序和用户db的问题,如何标记某些内容。同样,API应该只关心正确回答你的GET。

将REST API视为数据库 - 您可以从那里获取数据,您可以PUT或POST一些数据,但共享或标记等内容应该在应用程序中完成。

修改

关于端点。

  • GET/POST/PUT /quote[s]应该只关注报价;
  • 使用PUT/POST /user/{userId}/action等POST数据的
  • {"type": "share", "target": "otherUserId", "quoteId": 123}可用于在数据库中保存有关操作的数据