私が正しく理解していれば、すべてのクエリ(つまり、リソースの状態を変更しないすべてのリソースのすべてのアクション)は、getメソッドを使ってクエリ文字列にエンコードする必要があります。RESTで複雑なクエリを渡すには?
私は正しいですか?
私は、Visual Basic 6コンポーネントで処理されるXMLメッセージを介してdbと通信するいくつかのアプリケーションを用意しています。
クエリのメッセージは、今我々はXMLメッセージを再設計する過程にあるこの
<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>
のようなものであり、我々は、彼らが簡単になる可能性があるようにということをやってみたいですRESTfulインターフェイスにマップされます。
上記の例では、パラメータと条件の衝突を防ぐために "条件"タグが必要です(つまり、 "order"、 "page"などの名前のフィールドがあるとどうなりますか)。 、接頭辞パラメータを送信
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フォーマットを定義しようとしており、結果のXMLをrestやJSONに簡単にマッピングできるようになりました。
どのように残りのアプリケーションでこの種のクエリをマップしますか?いくつかの標準が定義されていますか?またはcrud rest/XML/JSONサンプルを含むいくつかのページ?エラーを返したり、ネストしたデータセットを返すのはどうですか?
ありがとうございます。
私はあなたのアプローチを理解していますが、私はqueryStringに自分のXMLを詰め込むのではなく、どのように残りの原則に従うことにしたいのですか? – opensas
それは言及したように、データを送信する必要がありますが、データをデータベースに送信するだけの場合は、URLで送信できるようにエンコードすることが理にかなっています。 GETを使用している場合は、別の方法があります。 –