Соглашение об именовании для конечной точки REST, где идентификатор не предоставляется по запросу - PullRequest
0 голосов
/ 25 октября 2018

У меня небольшая проблема, когда я не могу понять, как назвать конкретную конечную точку API.

Структура ресурса выглядит следующим образом:

students/{student-id}/exams

Использованиезапрос POST, я хочу добавить новый экзамен для конкретного студента.Тем не менее, идентификатор студента, который мы используем для запроса коллекции студентов, НЕ указывается в запросе.Вместо этого логика API получает идентификатор студента на основе текущего сеанса пользователя.

Я думал о том, чтобы назвать конечную точку следующим образом:

POST students/current-session/exams

Но мне это не кажется правильным.

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

1 Ответ

0 голосов
/ 25 октября 2018

REST не заботится о написании идентификаторов.Вы можете использовать все, что вам нравится.

Есть много возможных кандидатов на рассмотреть , все они в порядке.

Нет особой причины, по которой идентификатор использовался для этогосценарий использования должен быть согласован с иерархией students - если это делает вашу реализацию проще, хорошо, но для потребителей нет особого преимущества.

/my/exams
/students/current/exams
/777BC64D-AE19-4544-9757-E305188E9237
/777BC64D-AE19-4544-9757-E305188E9237/exams

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

...