Я написал веб-службу RESTful, которая поддерживает стандартные операции CRUD, и которая может возвращать набор объектов, соответствующих определенным критериям (глагол SEARCH), но я хотел бы добавить глагол COUNT более высокого порядка, поэтому клиенты могут подсчитывать ресурсы, соответствующие критериям поиска, без необходимости их извлечения.
Несколько вариантов, которые возникают у меня:
-
Игнорирование спецификации HTTP и возврат количества объектов в тело ответа запроса HEAD.
-
Дублирование логики глагола SEARCH, но выполнение запроса HEAD вместо запроса GET. Затем сервер будет кодировать количество объектов в заголовке ответа.
-
Определение нового метода HTTP, COUNT, который возвращает количество объектов в теле ответа.
Я бы предпочел API первого подхода, но я должен использовать этот параметр, потому что он не соответствует требованиям. Второй подход кажется наиболее семантически правильным, но API не очень удобен: клиентам придется иметь дело с заголовками ответов, когда большую часть времени они хотят сделать что-то легкое, как response.count
. Поэтому я склоняюсь к третьему подходу, но меня беспокоят потенциальные проблемы, связанные с определением нового метода HTTP.
Что бы вы сделали?