Если я правильно понимаю, в стиле отдыха, каждый запрос (то есть каждое действие на каждом ресурсе, который не изменяет состояние ресурса) должен быть закодирован в строке запроса, используя метод get, без тела вообще.Как передать сложные запросы в REST?
Я прав?
Ну, у меня есть несколько приложений, которые общаются с db через XML-сообщение, которое обрабатывается компонентом Visual Basic 6.
сообщение для запроса что-то вроде этого
<xml>
<service>account</service>
<resource>invoice</resource>
<action>query</action>
<parameters>
<page>1</page>
<page_len>10</page_len>
<order>date</order>
<fields>*</fields>
<conditions>
<date>2009-01-01..2009-01-31</date>
<customer_id>24</customer_id>
</conditions>
</parameters>
</xml>
Сейчас мы находимся в процессе реорганизации наших XML-сообщения, и мы хотели бы сделать это таким образом, чтобы они могли быть легко сопоставлен с интерфейсом RESTful.
В предыдущем примере нам нужны теги «условия», чтобы предотвратить столкновение между параметрами и условиями (т. Е. Что произойдет, если у меня есть поле с именем «порядок», «страница» или что-то в этом роде. ..
Подумали об отправке параметров с префиксом, что-то вроде
http://account/invoice/?_page=1&_page_len=10&_order=date&_fields=*&date=2009-01-01..2009-01-31&customer_id=24
и XML, будет что-то вроде
[...]
<_order>date</_order>
<_fields>*</_fields>
<date>2009-01-01..2009-01-31</date>
<customer_id>24</customer_id>
[...]
Мы пытаются определить какой-то действительно простой формат XML для операций crud и что полученный XML может быть легко отображен для отдыха или JSON.
Как бы вы могли сопоставить этот запрос в приложении для отдыха? Есть ли определенный стандарт? или на какой-либо странице с образцами crud rest/XML/JSON? как насчет возврата ошибки или вложенных наборов данных?
Большое спасибо.
Я подхожу к вашему подходу, но я хотел бы сделать, как это будет сделано в соответствии с принципами покоя, а не просто наполнить мой собственный xml в queryString ... – opensas
Это зависит от того, как, как уже упоминалось, вы можете переосмыслить, как вы следует отправлять данные, но если вы просто отправляете данные, которые должны быть помещены в базу данных, тогда кодирование, чтобы оно могло быть отправлено в URL, имеет смысл. Если вы используете GET, у вас будет другой подход. –