Типы контента важны только в рамках одного запроса. Все, что они делают, это описание формата отправляемого контента.
Ваш веб-сервис должен обеспечить ответ, наиболее приемлемый для клиентского запроса, который он может предоставить. Клиентский запрос должен включать заголовок Accept, который описывает допустимые типы контента. Если служба не может предоставить какую-либо из типов содержимого в этом заголовке затем возвращают 406 Not Acceptable
В вашей ситуации, если ваш клиент GET
запросы включают application/xml
в заголовке Accept, то это прекрасно, чтобы ответить application/xml
, независимо от PUT
запрос на запрашиваемые ресурсы.
РЕДАКТИРОВАТЬ:
status code definition для 406 Not Acceptable
включает в себя со следующей примечание:
Примечание: HTTP/1.1 серверы позволяют возвращать ответы, которые не приемлемы в соответствии с принятыми заголовками пересылаемых в запрос . В некоторых случаях это может быть даже предпочтительным для отправки ответа 406. Пользовательским агентам рекомендуется проверять заголовки на входящий ответ, чтобы определить, допустимо ли это.
Таким образом, вы можете вернуть application/xml
всякий раз, когда захотите.
Интересная статья, но это не ответ на мой вопрос .. Пример: Я PUT новую статью/статьи/Firstpost, я получаю возможность использовать тип содержимого любого приложения/XML или приложения/форм-данных. Я выбираю позже. Затем я делаю GET на статье, и я получаю представление application/xml. Это нормально? – Evert
Извините, но довольно новый для себя REST, но, насколько я понимаю, это действительно зависит от того, как XML будет потребляться клиентом. Сущность сообщения должна быть в формате данных, который наиболее подходит для клиента и не требует специального анализа для проблемы, поскольку это связывает клиента и службу вместе. Вот сообщение, которое обсуждает это еще немного; http://www.peej.co.uk/articles/rest-data-formats.html. Каковы были ваши причины для мышления application/xml, возможно, не следовать принципам REST? –