Я думаю о том, как реализовать конечную точку REST API для поиска. На мой взгляд, у меня есть четыре варианта реализации параметров поиска, каждый со своими плюсами и минусами:
- Использовать конечную точку GET с параметрами строки запроса
- Использовать конечную точку GET с полезная нагрузка (например, JSON полезная нагрузка)
- Использовать конечную точку POST с полезной нагрузкой
- Использовать конечную точку ПОИСКА с полезной нагрузкой
Для полноты здесь - плюсы и минусы, о которых я думаю:
- конечная точка GET с параметрами строки запроса
- Pro - точный глагол, соответствующий стандартам
- Con - ограниченная структура параметров (ключ / только значения) и ограничение размера URL
- конечная точка GET с полезной нагрузкой (например, JSON полезная нагрузка)
- Pro - точный глагол, без ограничения размера
- Con - спецификации HTTP говорят, что запросы GET не имеют значимых полезных данных, и некоторые фреймворки могут не поддерживать его ( соответствующий вопрос )
- конечная точка POST с полезной нагрузкой
- Pro - Соответствует стандартам, без ограничений по размеру * 103 6 *
- Con - поиск идемпотентен, а POST - нет. По сути, это неправильный глагол.
- Конечная точка ПОИСКА с полезной нагрузкой
- Pro - Точный глагол, без ограничения размера
- Con - неясное ( нестандартный?) HTTP-глагол
Можно было бы провести длительное, детальное и самоуверенное обсуждение того, что из них лучше, но это обсуждение не является целью этого вопрос. Вместо этого я спрашиваю: глагол ПОИСК просто неясен и редко используется, но все еще является официальным методом, или он нестандартный?
Я нашел этот черновик метода, но не намного официальные документы об этом. Проект перекликается с некоторыми пунктами квадрилеммы, которую я сформулировал выше. Мне кажется, что этот метод все еще является черновиком и не может быть назван «стандартным», хотя я не очень хорошо знаком с тем, как читать эти документы. Я полагаюсь на программное обеспечение, соответствующее самопровозглашенным стандартам, для обработки метода ПОИСКА? И если они не справятся с этим, могу ли я подать апелляцию на их требование соответствия стандартам, чтобы заставить их справиться с этим? Если говорить еще дальше, то это надежный глагол?