私は以前の要求を確認して、1回の呼び出しで次のメッセージを取得する快適なサービスを作成したいと考えています。これにより、サーバーへの不要な呼び出しが節約されます。単一の休憩コールで2つの操作を実行することは容認できますか?そうであれば、残りの動詞はgetとputの組み合わせのように見えますが、これを休憩サービスにどのように実装しますか?
これは私にはわかりません。
私は以前の要求を確認して、1回の呼び出しで次のメッセージを取得する快適なサービスを作成したいと考えています。これにより、サーバーへの不要な呼び出しが節約されます。単一の休憩コールで2つの操作を実行することは容認できますか?そうであれば、残りの動詞はgetとputの組み合わせのように見えますが、これを休憩サービスにどのように実装しますか?
これは私にはわかりません。
は、サーバーの状態を転送する一つの方法である、と応じて追加の応答を返す一方で、コンテンツの受信を確認します。プロトコルにはこれを一般的に行うメカニズムはありませんが、これらの結合操作を実行するリソースを作成できます。
GET /Step1
=>
200 OK
Content-Type: application/vnd.hal+xml
<resource rel="self" href="http://example.org/step1">
<title>Hello User</title>
<link rel="next" href="http://example.org/step2" />
<resource>
POST http://example.org/step2
<!-- Insert Content here -->
=>
200 OK
Content-Type: application/vnd.hal+xml
<resource rel="self" href="http://example.org/step2">
<title>Thank you for your content</title>
<response>This is your answer</response>
<link rel="next" href="http://example.org/step3" />
<resource>
私はhalをメディアタイプとして使用しています。これはリンクを含める方法が明確に定義されているためです。また、通常は次のGETを使用するので、私は標準的な "次の"リンク関係を乱用しています。実際に私が提案していることを行うには、おそらくカスタムのリンク関係が必要です。
これは私がこの問題に近づいてきた方法です。
REQUEST
PUT /resource # (or POST)
Accept: application/xml
Content-Type: application/xml
<Resource>
<Blah/>
</Resource>
RESPONSE
HTTP 1.1 200 OK # (or 201 Created)
Content-Type: application/xml
Content-Location: /resource
<Resource>
<Blah/>
</Resource>
私は(HTTP 1.1仕様では、その使用は、PUTやPOSTのために定義されていないと言う)レスポンスのContent-場所の使用に間違っているかもしれないが、それは私が使用してきたものです。私は他人がこれをやっていることを知ることに興味があります。
一般に、私はPOSTやPUTでコンテンツを返すことに問題はないと思います。ここで
ジョン
これは少し不明です。おそらく、あなたはあなたの質問を編集し、2回の呼び出しでどのように見えるのかを示すことができますか? – fumanchu