Является ли хорошей практикой, чтобы веб-API выполнял больше, чем операции CRUD?
У меня есть клиентское приложение (Blazor Server), которое получает данные из базы данных SQL с помощью веб-API. Моя база данных содержит таблицу «Клиенты». Мой веб-API содержит такие конечные точки CRUD (создание, чтение, обновление, удаление):
HTTP POST → "/api/customers"
HTTP GET → "/api/customers/{id}"
HTTP PUT → "/api/customers"
HTTP DELETE → "/api/customers/{id}"
Но мне было интересно, является ли добавление подобных конечных точек (кроме CRUD) хорошей практикой?
HTTP GET → "/api/customers/name-exist/{name}"
HTTP GET → "/api/customers/count/"
1 ответ
Короткий ответ заключается в том, что хорошей практикой является удовлетворение бизнес-требований вашего приложения. Если вам нужно раскрыть эту информацию, то это то, что вам нужно сделать.
Но те два примера, которые вы приводите, не выходят за рамки модели CRUD. Они оба читают (или ПОЛУЧАЮТ ) информацию. Это совершенно нормально. Нет причин, по которым это неприемлемо.
В документации для HTTP GET говорится:
Метод GET означает получение любой информации (в форме объекта), идентифицированной Request-URI.
Это именно то, что вы делаете в тех двух примерах, которые вы приводите.