Допустим, у меня есть таблица 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 ]
}
}