gpt4 book ai didi

web-services - 在 REST 中处理添加/删除多对多关系的正确方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 15:07:31 26 4
gpt4 key购买 nike

假设我们有一个包含服务器上用户列表的实体,我们希望将其公开为 rest。正确的做法是什么?

我的第一个猜测是这样的:

/entity/1/user/5

我们可以使用 PUT 进行更新,使用 DELETE 进行删除吗?

这样对吗?我去了维基百科,那里谈论休息,他们的观点是一切都只有 1 层深。所以也许他们希望您使用 PUT/POST 并提供整个 JSON 图并一次性更新整个内容?

最佳答案

您的示例是一种完全有效的方法。然而,在许多情况下,User 可以存在于 entity 的上下文之外。我倾向于孤立地识别资源,例如:

/entity/1
/user/5

要查看与我将使用的实体关联的用户:

/entity/1/users

可以通过 POST 用户来添加用户,

POST /entity/1/users
<User>
...
</User>

删除一个用户会是

DELETE /User/5

可以使用 PUT 来更新或创建用户

PUT /User/6

移除用户和实体之间的关联需要一点创造力。你可以做

DELETE /Entity/1/User/5 

按照你的建议,或者类似的

DELETE /Entity/1/UserLink?UserId=5

或者只是

DELETE /Entity/1/Users?UserId=5

对于您的 API 用户来说,您的 URI 是什么样子实际上并不是很重要。为了您自己的理智保持一致是件好事,选择易于使用您的服务器框架进行分派(dispatch)的方案是件好事,但重要的不是您的 URI 看起来像什么,而是您用它们做什么。

关于web-services - 在 REST 中处理添加/删除多对多关系的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4521452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com