Как указано в принятом ответе в Which HTTP method should Login and Logout Actions use in a "RESTful" setup, рекомендуется использовать HTTP POST (= create) для входа в веб-службу RESTful (например, /webservice/login/
). POST не является ни идемпотентным, ни безопасным (http://restcookbook.com/HTTP%20Methods/idempotency/).HTTP RESTful Выход из Webservice: что является правильной или лучшей практикой - POST или DELETE?
Однако как насчет выхода из системы (например,/webservice/logout /). Должен ли я использовать POST или DELETE?
DELETE is idempotent - независимо от того, существует ли на сервере сеанс (или что-то еще), или нет, он удаляется, а ответ с веб-сервера - это ОК, без какого-либо дополнительного содержимого. Мне это кажется естественным.
POST не является идемпотентным, а некоторые плакаты с подобными вопросами рекомендуют POST для выхода из системы REST. Я могу думать о двух возможных причин:
если сеанс не существует сервер может возвращать 404 - в успешный ответ в противном случае (два вида ответа)
выход из системы может вызвать, например, обновление базы данных, содержащее выход из системы информации для пользователя и т.п., и, следовательно, операции выхода из системы будет не идемпотентного
Так какой HTTP метод будет лучше для выхода из системы - POST или DELETE?
URL-адрес был плохим примером, мы используем токены сеанса в нашем приложении, однако, если я реализую API-интерфейс HTTP в соответствии с принципами REST, я думаю, что я должен использовать DELETE. – Blackbam
Да, но это определенно случай, когда вам следует задаться вопросом, какую выгоду предлагает REST здесь? – Evert