【发布时间】:2019-04-29 16:45:25
【问题描述】:
我正在尝试找出 API 设计的最佳或常见做法。 我的担心基本上是这样的:
PUT /users/:id
在我看来,这个端点可以用于多种功能。 我会用它来更改用户名或个人资料,但是例如重置密码呢?
从“模型”的角度来看,这可能是标志,是用户的属性,因此发送修改会“起作用”。
但我会期待更多类似的东西
POST /users/:id/reset_password
但这意味着几乎每次修改我都可以根据修改的含义创建不同的端点,即
POST /users/:id/enable
POST /users/:id/birthday
...
甚至
GET /user/:id/birthday
比较简单
GET /users/:id
所以基本上我不明白何时停止使用单个 POST/GET 并创建不同的端点。
在我看来这是一个简单的选择问题,我只是想知道是否有一些标准的方法或一些指导方针。阅读并查看示例后,我仍然不确定。
【问题讨论】:
-
如果您设计 REST 架构,最好将其视为针对机器而非人类读者的网站。由于 REST 只是通用 Web 的概括,因此同样的概念也适用于它。服务器应该告诉客户端请求应该是什么样子(具有类似于 Web 表单的表示),并允许客户端通过遵循 URI 和“单击”按钮或表单元素来采取进一步的“操作”。如果你想允许修改一个实体的单个元素,使用
PATCH,如果你更新整个实体使用PUT,如果不符合上述条件,使用POST
标签: rest