我有以下实体:
Post
PostId: int [PK]
Title: string
Tag
TagId: int [PK]
Name: int
PostTag
PostId: int [FK]
TagId: int [FK]
PostId + TagId = PK of PostTag
因此PostTag
定义了Post
和Tag
之间的多对多关系。
我创建了一个API端点/posts
,该端点返回帖子列表:
[
{
"postId": 1,
"title": "Title 1",
"tags": [
{ "tagId": 1, "name": "Tag 1" },
{ "tagId": 2, "name": "Tag 2" }
]
},
{
"postId": 2,
"title": "Title 2",
"tags": [
{ "tagId": 2, "name": "Tag 2" },
{ "tagId": 3, "name": "Tag 3" }
]
}
]
我没有公开PostTag实体……只有帖子及其标签。
问题
要删除帖子的标签,例如PostTag,我是否应具有以下端点:
HTTP DELETE "posts/{postId}/tags/{tagId}"
并将标签关联到帖子,我会做类似的事情:
HTTP POST "posts/{postId}/tags"
Where the body would contain TagId and Name
这是一个好方法吗?
我看到其他选项:
欢迎任何意见...