2012-01-25 19 views
8

一般に、RESTコミュニティはGETリクエストの複雑なデータを嫌うようです。この背後には良い原則があるのだろうか、それともGET辞書の(任意のURLの長さ)制限を反映しているのだろうか?RESTとGET ... again

私はURLとリソースの対応に満足していますが、なぜ私のGETリクエストはリクエストの本文でjsonやxml(HTTP仕様で許可されています)で複雑なデータを取れないのですか?

GETの要点は、GETがサーバーの状態を変更しないように要求するということでした。これは要求の複雑さに直面しているようです。しかし、複雑なクエリはPUTまたはPOSTで作成され、GETで参照されることが多くの人から提案されています。

これは、(GETリクエストではボディを持たない)慣例を、原則の状態に昇格させ、残念なことに副作用を伴います。リソースに値するものではない別のオブジェクトの状態を維持する必要があります。それ自身 - それはクエリです。

おそらく、私が行方不明のいくつかの他の原則があります - 私はあなたのコメントを歓迎します!

答えて

4

既存のウェブ仲介業者があなたのGETボディを削除する恐れがあります。幸いにも、新しいhttpbisの仕様では本文を取得するためのテキストを改訂し、少し怖いものにしました。個人的には、安全でないリクエストをログに記録したいので、私は身体を使ってgetsを使うことを検討しています。現時点では、POSTが安全かどうかを簡単に特定する方法はありません。 あなたのユーザエージェントとオリジンサーバの間にあるコンポーネントを制御できるなら、GETsを本体に使用してください。

+0

興味深い...誰もが "野生の"落ちた体との不幸な経験を共有できますか? – shaunc

+0

いいえ、それに遭遇した場合、どのような計画がありますか? –

+0

尾を回して逃げろ!しかし、その唯一の恐ろしい伝説、そして誰も(聞く)誰にも起こらなかったなら、それは私にいくらか自信を与えます。 – shaunc