可以说我有一个organization
表和role
表,并且与多对多关系相关。
/organization
将提供所有组织。/organization/1
将提供特定的组织。/organization/1/role
将提供特定组织的角色。现在,在组织1
中显示不是角色的惯例应该是什么?
答案 0 :(得分:1)
可以说我有一个
organization
表和role
表,并且与多对多关系相关。
请记住,REST没有表的概念。在解决数据库问题时,REST就是关于资源的。
将defines 资源配置为任何可以命名的信息。因此,是的,数据库表可以看作是一种资源,但是我知道您的API是关于存储在表中的数据,而不是表本身。
当/organization
映射到组织的集合时,使用诸如/organizations
之类的复数名词可能更有意义。鉴于REST并没有说出URI拼写,这完全取决于您。
显示不在组织1中的角色的约定应该是什么?
好吧,恐怕您找不到在URI(甚至在查询字符串中)中表示该内容的任何标准方式(或至少是任何普遍采用的约定)。但是无论如何,我还是想给你2美分。
例如,您可以具有一个/roles
端点和一个查询参数以排除某些公司,如下所示:
GET /roles?excluding-company=1
或者,您可以将集合过滤与搜索分开。如果您的API必须支持高级搜索,那将很有趣。您可以考虑如下所示的端点(我组成了有效负载):
POST /search HTTP/1.1
Host: example.org
Content-Type: application/json
{
"type": "role",
"organization": {
"excluding": [ 1 ]
}
}