Соглашение REST для исключения - PullRequest
0 голосов
/ 15 апреля 2019

Допустим, у меня есть таблица organization и таблица role, и они связаны многими со многими.

  1. /organization предоставит все организации.
  2. /organization/1 предоставит конкретную организацию.
  3. /organization/1/role обеспечит роль конкретной организации.

Теперь, какое должно быть соглашение для отображения ролей, которые не в организации 1?

1 Ответ

1 голос
/ 15 апреля 2019

Допустим, у меня есть таблица organization и таблица role, и они связаны с отношением многие ко многим.

Пожалуйста, имейте в виду, что REST не имеет понятия таблиц . Хотя REST относится к базе данных, все дело в ресурсах.

Fielding определяет resource как любую информацию, которая может быть названа . Так что да, таблицу базы данных можно рассматривать как ресурс, но я понимаю, что ваш API касается данных, хранящихся в таблицах, а не самих таблиц.

Когда /organization отображается на коллекцию организации , возможно, имеет смысл использовать множественное число , такое как /organizations. Учитывая, что REST ничего не говорит о написании URI, это действительно ваше дело.

Каким должно быть соглашение для отображения ролей, которых нет в организации 1?

Боюсь, вы не найдете никакого стандартного способа (или, по крайней мере, какого-либо общепринятого соглашения) для представления этого в URI (даже в строке запроса). Но все равно позвольте мне дать вам 2 цента.

Например, у вас может быть конечная точка /roles и параметр запроса для исключения какой-либо компании, как показано ниже:

GET /roles?excluding-company=1

Кроме того, вы можете отделить фильтрацию коллекции от поиска . Это интересно, если ваш API должен поддерживать расширенный поиск. Вы можете рассмотреть конечную точку, как показано ниже (я составил полезную нагрузку):

POST /search HTTP/1.1
Host: example.org
Content-Type: application/json

{
  "type": "role",
  "organization": {
    "excluding": [ 1 ]
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...