Нужно ли когда-либо иметь API GET-запросов, поскольку POST лучше во всех отношениях?
В общем, да. В ваших конкретных c обстоятельствах - возможно, нет.
GET
и POST
являются токенами метода .
Маркер метода запроса - основной источник семантики запроса
Они представляют собой форму метаданных, включенных в запрос http, чтобы компоненты общего назначения могли знать семантику запроса и вносить конструктивный вклад.
POST в некотором смысле является методом подстановки - он может означать что угодно . Но одно из следствий этого - поскольку метод имеет неограниченную семантику, компоненты общего назначения не могут делать ничего полезного, кроме как передавать запрос.
GET , однако, имеет безопасная семантика (которая включает идемпотентную семантику). Поскольку запрос является идемпотентным, компоненты общего назначения знают, что они могут повторно отправить запрос GET, когда сервер не возвращает ответа (ie сообщений теряются на ненадежном транспорте); Компоненты общего назначения могут знать, что представления ресурса могут быть предварительно извлечены, уменьшая воспринимаемую задержку.
Ранее вы отклонили кеширование как проблему, но вы можете переосмыслить это - ограничение кэша является важным элементом, который помог сети завоевать весь мир.
Сокращение всего до POST уменьшает HTTP из приложения для передачи документов по сети в тупой транспорт.
Использование HTTP для транспорта не обязательно неправильно: простой протокол доступа к объектам (SOAP) работает таким же образом, как и gRP C. Вы по-прежнему получаете авторизацию и условные запросы; функции HTTP, которые в противном случае вам могут понадобиться, чтобы свернуть свои собственные.
В этот момент вы не выполняете REST, но это нормально; не каждый должен.
Это не значит, что я думаю, что каждый должен проектировать свои собственные системы в соответствии с архитектурным стилем REST. REST предназначен для долгоживущих сетевых приложений, которые охватывают несколько организаций. Если вы не видите необходимости в ограничениях, не используйте их. ( Филдинг, 2008 )