REST, как обрабатывать параметры запроса при помещении в ресурс?
Вопрос
У меня есть служба данных REST, где я хочу разрешить пользователям создавать новые элементы с помощью HTTP PUT, используя различные форматы, такие как json, xml, csv.Я не уверен, как лучше всего обрабатывать спецификацию формата в URL-адресе:
PUT /ressource/ID/json
PUT /ressource/ID/xml
или
PUT /ressource/ID?format=json
PUT /ressource/ID?format=xml
Так как же лучше всего указать индикатор формата?
Если я укажу формат с параметром запроса и хочу сделать PUT
как я могу сделать это с помощью завитка?
curl -T test/data.json -d "format=json" http://localhost:5000/resource/33
не работает.
curl -T test/data.json http://localhost:5000/update?format=json
работает, но я бы предпочел позволить Curl создавать параметры запроса, а не добавлять их самостоятельно.
Решение
Общий принцип веб-служб RESTful заключается в использовании функций, встроенных в HTTP, когда это применимо.В этом случае вы можете указать формат содержимого вашего запроса PUT, установив параметр Тип содержимого заголовок к приложение/json или приложение/xml.