Ответ API остальных для отношения «Многие ко многим» - PullRequest
0 голосов
/ 31 января 2019

У меня есть следующие объекты:

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

Это хороший подход?

Я вижу другие варианты:

  1. Предоставить PostTag в ответ (не удобно для пользователя);
  2. Добавить таблицу PK (PostTagId) do PostTag и в ответ TagId будет PostTagId ...
    Может показаться странным, но более прямой доступ к нему?

Любое мнениеДобро пожаловать ...

...