Считается ли плохой практикой выполнение HTTP POST без тела сущности?

Мне нужно вызвать процесс, который не требует ввода от пользователя, просто триггер. Я планирую использовать POST / uri без тела для запуска процесса. Я хочу знать, считается ли это плохим с точки зрения HTTP и REST?

4 ответов


Я спросил этот вопрос в рабочей группе IETF HTTP несколько месяцев назад. Короткий ответ: да, все в порядке, но я предлагаю прочитать нить для получения более подробной информации.


использование POST вместо GET вполне разумно, так как он также инструктирует сервер (и шлюзы по пути) не возвращать кэшированный ответ.


POST полностью в порядке. В отличие от GET с POST вы меняете состояние системы (скорее всего, ваш триггер что-то "делает" и меняет данные).

Я использовал сообщение уже без полезной нагрузки, и он" чувствует " ОК. Одна вещь, которую вы должны сделать при использовании POST без полезной нагрузки: Pass header Content-Length: 0. Я помню проблемы с некоторыми прокси, когда я api-клиент не прошел его.


Если вы используете POST / uri без тела, это похоже на использование функции, которая не принимает аргумент .e.G int post (void); поэтому разумно иметь функцию для вашего класса ресурсов, которая может изменять состояние объекта без аргумента. Если вы считаете, что реализовать функцию касания Unix для URI, не является ли это хорошим выбором?