2009-06-11 2 views
0

Я разрабатываю веб-сервис REST-ful, и у меня есть вопрос о методе HTTP PUT.Альтернативные тела для HTTP PUT

Я хочу, чтобы люди могли отправлять контент с помощью тела запроса приложения/формы. Однако ответ по умолчанию будет в application/xml.

Это приемлемо?

Эверт

ответ

2

Типы контента важны только в рамках одного запроса. Все, что они делают, это описание формата отправляемого контента.

Ваш веб-сервис должен обеспечить ответ, наиболее приемлемый для клиентского запроса, который он может предоставить. Клиентский запрос должен включать заголовок Accept, который описывает допустимые типы контента. Если служба не может предоставить какую-либо из типов содержимого в этом заголовке затем возвращают 406 Not Acceptable

В вашей ситуации, если ваш клиент GET запросы включают application/xml в заголовке Accept, то это прекрасно, чтобы ответить application/xml, независимо от PUT запрос на запрашиваемые ресурсы.

РЕДАКТИРОВАТЬ:

status code definition для 406 Not Acceptable включает в себя со следующей примечание:

Примечание: HTTP/1.1 серверы позволяют возвращать ответы, которые не приемлемы в соответствии с принятыми заголовками пересылаемых в запрос . В некоторых случаях это может быть даже предпочтительным для отправки ответа 406. Пользовательским агентам рекомендуется проверять заголовки на входящий ответ, чтобы определить, допустимо ли это.

Таким образом, вы можете вернуть application/xml всякий раз, когда захотите.

0

RESTful службы должны использовать правильный метод HTTP (GET, HEAD, PUT, DELETE или POST) для действия, убедитесь, что любая информация, обзорное содержится в URI и убедитесь, что HTTP сообщение конверт делает не содержат другой конверт, т.е. SOAP.

Roy Fieldings 2000 Ph.D. dissertation: Architectural Styles and the Design of Network-Based Software Architectures составляет основу ОТДЫХА.

+0

Интересная статья, но это не ответ на мой вопрос .. Пример: Я PUT новую статью/статьи/Firstpost, я получаю возможность использовать тип содержимого любого приложения/XML или приложения/форм-данных. Я выбираю позже. Затем я делаю GET на статье, и я получаю представление application/xml. Это нормально? – Evert

+0

Извините, но довольно новый для себя REST, но, насколько я понимаю, это действительно зависит от того, как XML будет потребляться клиентом. Сущность сообщения должна быть в формате данных, который наиболее подходит для клиента и не требует специального анализа для проблемы, поскольку это связывает клиента и службу вместе. Вот сообщение, которое обсуждает это еще немного; http://www.peej.co.uk/articles/rest-data-formats.html. Каковы были ваши причины для мышления application/xml, возможно, не следовать принципам REST? –

Смежные вопросы