我正在构建一个RESTful API,将我的应用程序用户公开为users
。RESTful API:建模可访问其他资源的资源集合
我的应用程序还具有“文档”功能,每个用户都可以访问特定的文档。我正在考虑通过users/{user-id}/documents
公开可访问文档来自然地表达这一点。
但是,从可用性的角度来看,重要的是我的客户能够获取(并修改)有权访问特定文档的用户。正因为如此,我正在考虑将这种表示“逆转”到documents/{document-id}/users
。
这些(特别是后者)是否看起来像正确的方式来模拟这种关系?如果我确实采用这样的解决方案,我该如何建模'授予对文档的访问权限'?
我倾向于将预先存在的用户(大概是通过获取users
获取)转换为documents/{document-id}/users/{user-id}
。然而,这似乎并不令人满意,因为我将执行“更新”操作,而不是实际更新资源,而是将其插入集合中。这在语义方面尤其成问题,因为我期望我的服务器端最终不会考虑完整的已发送用户表示,而只是将id与预先存在的用户的id进行交叉引用,以创建关联。
在另一方面,我不能发布到documents/{document-id}/users
,因为我不是在创造一个新的资源的目标 - 我特别不想要一个被创建。
我做错了吗?
的可能的复制[如何处理在一个RESTful API许多一对多的关系?] (http://stackoverflow.com/questions/6324547/how-to-handle-many-to-many-relationships-in-a-restful-api)(尽管我仍然会对PUT/POST语义如何感兴趣进入这个数字) – biril