【发布时间】:2020-08-20 02:42:30
【问题描述】:
-
想象一下,例如绑定表 user_tasks(user_id, task_id) 与 m:n 关系。 我想插入新记录。如果记录已插入或此类记录已存在,端点应返回 204 Status No Content。 你会如何组成这样的端点?
-
GET users/{user_id}/tasks/{task_id} POST users/{user_id}/tasks/{task_id}PUT users/{user_id}/tasks/{task_id}PUT user_tasks + payload: {"user_id": 1, "task_id": 2}- 还有别的吗?
-
我个人会使用 GET,因为方法是幂等的(如果我理解正确的话)并且它不包含有效负载,但我不确定。
- 现在假设该表还有一个列:user_tasks(user_id, task_id, position)。
这里最好的解决方案是什么?
GET users/{user_id}/tasks/{task_id}/position/{position}POST user_tasks + payload: {"user_id": 1, "task_id": 2, "position": 3}POST users/{user_id}/tasks/{task_id} + payload: {"position": 3}PUT users/{user_id}/tasks/{task_id} + payload: {"position": 3}- 还有别的吗?
我们的项目中有这两种情况。
【问题讨论】:
-
客户端是否可以决定任务 ID?
标签: rest http naming-conventions http-method