我目前正在为具有三种数据类型的应用程序创建 API; 文件
、标签
和人物
。这些都是常规联系在一起的;一个 File
有许多 Tags
和附加到它的 Persons
。
问题是,我不知道如何使用 RESTful API 实际连接它们。 Persons
和 Tags
对于 File
是必不可少的,因此它们会自动返回,无需任何进一步的请求。
这是我正在查看的 Files
结构示例:
GET /files
GET /files/:id
POST /files
PUT /files/:id
PATCH /files/:id
对于标签
:
GET /tags
GET /tags/:id
POST /tags
PUT /tags/:id
PATCH /tags/:id
对于人
:
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
但这似乎有点笨拙。
适合我的情况的理想结构是什么?
最佳答案
These are all routinely linked; a File has many Tags and Persons attached to it.
PATCH/files/:id
端点似乎是个好地方:
PATCH /files/:id
{
"PersonIds": [ 1, 2, 3 ],
"TagIds": [ 4, 5 ]
}
这将更新 File
与 Persons
和 Tags
的关联,并保持文件的其他属性不变(这是PATCH
动词 - 部分更新)。
关于json - 为多对多关系构建 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38930576/