我目前正在为具有三种类型数据的应用程序创建API; Files
,Tags
和Persons
。这些都是常规的联系; File
附加了许多Tags
和Persons
。
问题是,我不知道如何使用RESTful API实际连接它们。 Persons
和Tags
对于File
至关重要,因此会自动返回,而不会再提出任何请求。
这是我正在查看Files
的结构示例:
GET /files
GET /files/:id
POST /files
PUT /files/:id
PATCH /files/:id
对于Tags
:
GET /tags
GET /tags/:id
POST /tags
PUT /tags/:id
PATCH /tags/:id
对于Persons
:
GET /persons
GET /persons/:id
POST /persons
PUT /persons/:id
PATCH /persons/:id
正如您所看到的,它们完全相同,旨在使我的API易于记录。但问题是多对多的关系,我不知道如何将给定的Tag
或Person
与File
相关联。
我在考虑这个:
POST /files/:id/tags
DELETE /files/:id/tags/:id
但这似乎有点笨拙。
我的情况的理想结构是什么?
答案 0 :(得分:1)
这些都是常规联系的;文件中附有许多标签和人员。
然后PATCH /files/:id
端点似乎是一个好地方:
PATCH /files/:id
{
"PersonIds": [ 1, 2, 3 ],
"TagIds": [ 4, 5 ]
}
这将更新与File
和Persons
的{{1}}关联,并保持文件的其他属性不变(这是Tags
动词的一点 - 部分更新)。