ege*_*ari 14 rest many-to-many web-services http
假设我们有一个包含服务器上用户列表的实体,我们希望将其公开为rest.这样做的正确方法是什么?
我的第一个猜测是这样的:
/entity/1/user/5
Run Code Online (Sandbox Code Playgroud)
我们可以使用PUT进行更新,使用DELETE进行删除吗?
这是正确的吗?我去维基百科谈论休息,他们对它的看法是一切都只有1级深.那么也许他们希望你使用PUT/POST并提供整个JSON图并一次更新所有内容?
Dar*_*ler 13
您的示例是一种非常有效的方法.然而,在许多情况下,一个User可以存在于公正的背景之外entity.我倾向于孤立地识别资源,例如:
/entity/1
/user/5
Run Code Online (Sandbox Code Playgroud)
要查看与实体关联的用户,我将使用:
/entity/1/users
Run Code Online (Sandbox Code Playgroud)
添加用户可以通过POST用户来完成,
POST /entity/1/users
<User>
...
</User>
Run Code Online (Sandbox Code Playgroud)
删除用户将是
DELETE /User/5
Run Code Online (Sandbox Code Playgroud)
可以使用PUT完成更新或创建用户
PUT /User/6
Run Code Online (Sandbox Code Playgroud)
删除用户和实体之间的关联需要一点创造力.你可以做到
DELETE /Entity/1/User/5
Run Code Online (Sandbox Code Playgroud)
如你所说,或类似的东西
DELETE /Entity/1/UserLink?UserId=5
Run Code Online (Sandbox Code Playgroud)
要不就
DELETE /Entity/1/Users?UserId=5
Run Code Online (Sandbox Code Playgroud)
对于API的用户而言,现实对您的URI看起来并不重要.为了您自己的理智而保持一致是很好的,选择易于使用您的服务器框架进行调度的方案是很好的,但它不是您的URI的样子,而是您使用它们做的重要事项.
| 归档时间: |
|
| 查看次数: |
2067 次 |
| 最近记录: |