Путь API отдыха со многими отношениями - PullRequest
0 голосов
/ 21 июня 2019

Я определяю путь отдыха для множества отношений.Я хочу получить список пользователей, которые являются гостями компании.Достаточно ли ниже пути?

/api/v1/users/companies/{companyId}/guests

Поскольку я поместил его в UserController, чтобы он не мог быть

/api/v1/companies/{companyId}/guests

У вас есть какие-либо предложения?

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Я прежде всего намеревался написать комментарий, но это слишком долго, поэтому я написал ответ вместо этого.

Прежде всего, REST - это архитектурный стиль , а не кулинарная книга для разработки URI. REST не применяет какой-либо дизайн URI (если он совместим с RFC 3986 ), и вам остается только выбрать URI, которые лучше идентифицируют ваши ресурсы.


Есть ли у вас какие-либо предложения?

Ответы на этот вопрос, как правило, будут почти полностью основаны на мнениях, а не на фактах, ссылках или конкретных знаниях. С этого момента вы прочтете мое личное мнение .

Если ресурсы guest и companies могут управляться независимо, я бы использовал следующие сопоставления:

/companies
/guests

Затем вы можете использовать параметр запроса , чтобы отфильтровать гостей для данной компании:

GET /guests?company={id} HTTP/1.1
Host: example.org

Чтобы создать ресурс guest для данной компании, вы можете использовать:

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

{
  "name": "John Appleseed",
  "companyId": 1
}
0 голосов
/ 21 июня 2019

REST не имеет значения, какое написание используется для идентификаторов ресурсов, если они соответствуют производственным правилам, определенным в RFC 3986 .

/api/v1/users/companies/{companyId}/guests

Отлично

/api/v1/companies/{companyId}/guests

Это тоже было бы хорошо.

/d4158568-c40f-4c51-93cd-25642f6f42e2

Так бы и было.

/api/v1/companies/guests?companyId={companyId}

В Интернете вы, вероятно, с большей вероятностью увидите такой идентификатор; формы - это полезный способ предоставления клиенту данных, а в HTML есть производственные правила для создания URI из данных в форме. Конечно, HTTP также имеет механизмы, которые позволяют перенаправлять внимание клиентов с одного URI на другой, поэтому вам не нужно ограничивать идентификаторы теми, которые подходят для конкретного клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...