У меня есть следующие объекты:
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
Это хороший подход?
Я вижу другие варианты:
- Предоставить PostTag в ответ (не удобно для пользователя);
- Добавить таблицу PK (PostTagId) do PostTag и в ответ TagId будет PostTagId ...
Может показаться странным, но более прямой доступ к нему?
Любое мнениеДобро пожаловать ...