Se ho capito correttamente, nello stile di riposo, ogni query (ovvero ogni azione su ogni risorsa che non modifica lo stato della risorsa) dovrebbe essere codificata nella stringa di query, utilizzando un metodo get, senza alcun corpo.Come passare query complesse in REST?
Ho ragione?
Bene, ho diverse applicazioni che comunicano con il db attraverso un messaggio XML gestito da un componente di Visual Basic 6.
il messaggio per una query è qualcosa di simile
<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>
In questo momento siamo in procinto di ridisegnare i nostri messaggi XML, e ci piacerebbe farlo in modo tale che potessero essere facilmente mappato su un'interfaccia RESTful.
Nell'esempio precedente, abbiamo bisogno dei tag "condizioni" per evitare collisioni tra i parametri e le condizioni (ad esempio, cosa succede se ho un campo chiamato "ordine", "pagina" o qualcosa del genere. ..
Noi però circa l'invio dei parametri con un prefisso, qualcosa come
http://account/invoice/?_page=1&_page_len=10&_order=date&_fields=*&date=2009-01-01..2009-01-31&customer_id=24
e l'XML sarebbe qualcosa di simile
[...]
<_order>date</_order>
<_fields>*</_fields>
<date>2009-01-01..2009-01-31</date>
<customer_id>24</customer_id>
[...]
Noi stanno cercando di definire un formato XML veramente semplice per le operazioni di crudismo e che l'XML risultante potrebbe essere facilmente mappato su rest o JSON.
Come si mapperà questo tipo di query in un'applicazione di riposo? C'è qualche standard definito? o qualche pagina con campioni di crude/XML/JSON? che ne dici di restituire l'errore o i dataset annidati?
Grazie mille.
Io capisco il tuo approccio, ma mi piacerebbe fare come si farebbe seguendo i principi di riposo, non solo riempire il mio xml nella queryString ... – opensas
Dipende se, come è stato detto, puoi ripensare a come dovrebbe essere l'invio di dati, ma se si stanno solo inviando dati da inserire nel database, quindi la codifica in modo che possa essere inviato in un URL ha senso. Se si utilizza GET, si avrà un approccio diverso. –