假设我有一个“用户”资源和一个“组”资源。它们的 RESTful 表示形式如下所示;
/user/:id
/group/:id
但是如果我想对两个资源之间的关联进行操作呢?例如,如果我想指定用户 #1 想加入组 #1。我将如何表示组 #1 的 group#join 应该在用户 #1 上执行?
假设我有一个“用户”资源和一个“组”资源。它们的 RESTful 表示形式如下所示;
/user/:id
/group/:id
但是如果我想对两个资源之间的关联进行操作呢?例如,如果我想指定用户 #1 想加入组 #1。我将如何表示组 #1 的 group#join 应该在用户 #1 上执行?
例如,如果我想指定用户 #1 想加入组 #1。我将如何表示组 #1 的 group#join 应该在用户 #1 上执行?
我可能会对 /groups/1/members 或 /users/1/memberships 之类的内容进行 POST。如果您想允许一个用户一次加入多个组,则提供一个替代方案(如 PUT 到 /users/1/memberships)可能是有意义的。
您有很多选择,但这取决于您想要实现的工作流程。我认为暂时忘记 REST 会有所帮助。考虑构建一个简单的浏览器应用程序。链接和表格在哪里?Web 应用程序中的每个页面都是资源的 HTML 表示。它有链接和表格。将其替换为替代表示,但保留链接和表格。
一旦你完成了这样的设计练习,你将能够更好地决定对 /groups/1/members 的 POST 是否有意义。
约翰
嗯.. /group/:id 包含什么?
我假设它会在某个地方包含一组用户?
/group/:id/users/:id - 代表我的组成员身份。
迈克·布朗