我正在设计一些宁静的网址,但我尚未决定如何检索我的域的实体。
在较低级别,我有一个具有多对多和一对多关系的数据库。
假设实体是公司、组和用户。
Companies 和 Groups 之间的关系是一对多的(Groups 中的外键),Company 和 Users 之间也是如此。
而在组和用户之间,关系是多对可能的。
我对 RESTful API 的了解告诉我应该构建如下 URL:
http://mywebsite.com/company/
,http://mywebsite.com/company/1/users/
,http://mywebsite.com/company/1/groups/
用于 post(创建新实体)和 get 方法;http://mywebsite.com/company/1
,http://mywebsite.com/company/1/users/1
,http://mywebsite.com/company/1/groups/1
用于 put(更新)、delete 和 get 方法;http://mywebsite.com/company/1/users/1/groups/
对于帖子(添加新关联)和获取方法。
现在,我的问题是如何从用户或组中读取(获取)、(并最终更新(放置)或更改公司(发布))。
基本上有3个选项:
http://mywebsite.com/company/1/users/1/company
并提供相同的 json 和 xml,http://mywebsite.com/company/1
并拒绝重复的 url,如http://mywebsite.com/company/1/users/1/company/1/users
..- 在用户描述(或组)的 json 和 xml 中嵌套他公司的 json 和 xml,嵌套部分几乎与
http://mywebsite.com/company/1
. 但是这个选项意味着在用户(或组)的每个请求中,两个表之间的连接,即使我有兴趣只知道用户的名字; - 仅在用户和组的 json 和 xml 中提供外键值(公司的标识符)。