私は、モバイル クライアントと中央サーバーの間で RESTful Web サービスを利用するエンタープライズ システムに取り組んでいます。可能な限り RESTful としましょう。
私の質問は、HATEOAS (アプリケーション状態のエンジンとしてのハイパーメディア) と、HTTP 応答本文でのカスタム xml の使用に関するものです。
このシステムがパブリック クライアントによって使用されることは決してありませんが、各クライアントを個別に再構成することなく、サーバー側のリソース割り当てパターンを後で変更できるという HATEOAS のアイデアが気に入っています。スケーリングの問題により、サーバー機能を複数の物理ボックスに分散する必要があると判断した場合、問題ありません。これは、クライアント (またはクライアントからの指示を受けたサーバー) が新しいリソースを作成するときに生成される URI に反映されます。 .
私たちの事業領域は非常に具体的で珍しいものです。そのため、Web サービス全体で HTTP 応答エンティティ ボディにカスタム XML を使用したいと考えています。クライアントは、独自のアプリケーション状態を変更するときに使用できるリソースの場所を常に把握するために、xml からリソース URI を解析します。これがHATEAOSのH部分を「壊す」ことを私は知っています。
たとえば、クライアントが処理のためにトランザクションをサーバーに POST する場合、サーバーは次の xml フラグメントを 201 HTTP 応答本文に (より大きな xml ドキュメントの一部として) 含める場合があります。サーバーは、新しく作成されたトランザクション リソース自体の URI もクライアントに通知しますが、これはおそらく Location HTTP ヘッダーにのみ含まれます。
<resulturi>http://resultserver/results/1234.xml</resulturi>
これはそんなに悪いことですか?このサービスを使用するクライアントがブラウザ ベースになる可能性はほとんどありません。URI を xml 内のプレーンテキストとして配信することに対するハイパーメディアの他の利点は何ですか?
XHTML を使用することもできると思いますが、モバイル プラットフォームのパーサーは POX の方がはるかに効率的です。