Я разрабатываю REST-ful веб-сервис, и у меня есть вопрос о методе HTTP PUT.
Я хочу разрешить людям отправлять контент, используя тело запроса application/form-data. Однако ответ по умолчанию будет в application/xml.
Это приемлемо?
Эверт
Я разрабатываю REST-ful веб-сервис, и у меня есть вопрос о методе HTTP PUT.
Я хочу разрешить людям отправлять контент, используя тело запроса application/form-data. Однако ответ по умолчанию будет в application/xml.
Это приемлемо?
Эверт
Типы контента важны только в рамках одного запроса. Все, что они делают, это описывают формат отправляемого контента.
Ваша веб-служба должна предоставлять наиболее приемлемый ответ на запрос клиента, который она способна предоставить. Запрос клиента должен включать заголовок Accept, описывающий допустимые типы контента. Если ваша служба не может предоставить ни один из типов контента в этом заголовке, верните 406 Not Acceptable
В вашей ситуации, если ваши клиентские запросы GET содержат application/xml в заголовке Accept, то можно ответить application/xml, независимо от любого запроса PUT, сделанного на запрошенных ресурсах.
РЕДАКТИРОВАТЬ:
определение кода состояния для 406 Not Acceptable содержит примечание с последующий:
Примечание. Серверам HTTP/1.1 разрешено возвращать ответы, которые не являются приемлемыми в соответствии с заголовками принятия, отправленными в запросе. В некоторых случаях это может быть даже предпочтительнее отправки ответа 406. Пользовательским агентам рекомендуется проверять заголовки входящего ответа, чтобы определить, является ли он приемлемым.
Таким образом, вы можете вернуть application/xml, когда захотите.
Службы RESTful должны использовать правильный метод HTTP (GET, HEAD, PUT, DELETE или POST) для действия, гарантировать, что любая информация о области действия содержится в URI, и убедиться, что конверт сообщения HTTP не содержит другого конверта, т. е. SOAP.
Рой Филдингс, 2000 г., доктор философии. диссертация: Архитектурные стили и проектирование сетевых программных архитектур составляют основу REST.