Это действительно зависит от того, как вы планируете внедрить услугу. Если вы собираетесь использовать установленный фреймворк, такой как Spring, то вы, скорее всего, будете использовать метод 4-й конечной точки и не иметь поля status
, так как состояние будет подразумеваться глаголом HTTP (GET / POST / PUT / DELETE ).
На самом деле у вас есть RPC (удаленный вызов процедур). Поле status
является «методом» для вызова. Там, где чистый REST будет использовать HTTP-глаголы, RPC будет использовать этот тип вызова метода. Поэтому, если вы планируете создавать сервис с нуля без использования инфраструктуры, вы можете использовать одну конечную точку. Я не вижу смысла иметь только 2 конечных точки, когда вы можете добавить другое поле status
:
EmployeeDomainObject
{
"firstName": "string",
"lastName": "string",
"id": "string",
"status": "ACTIVE" or "DELETE" or "RETRIEVE" or null
}
и используйте POST. Это не ОТДЫХ, но вы не спрашиваете, хорошо ли это ОТДЫХ или нет.
Нет ничего «неправильного» в использовании вышеприведенного, особенно если вы собираетесь создавать сервис с нуля (возможно, он ограничен в ресурсах и т. Д.).
Конечные точки - это просто способ взаимодействия клиента со службой. Независимо от того, поступают ли эти взаимодействия через 4 конечных точки в стиле REST или 1 POST в стиле RPC, не имеет значения. Клиент просто делает то, что ему нужно.
Последствия для сервера. Установленная среда REST, такая как Spring, даст вам хорошее начало, но свяжет вас с 4 конечными точками. Если вы можете свободно проектировать серверную часть, тогда в подходе RPC-стиля нет ничего плохого. Вы по-прежнему можете регистрировать / проверять / обрабатывать разрешения для службы, но вам, вероятно, придется кодировать их самостоятельно.
Если вы планируете создавать что-то большое и нанимать много программистов, то вы, вероятно, захотите пойти по течению и использовать 4 конечных точки в стиле REST и устоявшуюся среду для найма более широкого круга талантов. пул, а не наем и обучение по вашей системе, разработанной на заказ.