4

私は、現実の世界でREstGETおよびPOSTアーキテクチャの哲学に取り組んでいる状況にあります。

私には、その性質上べき等であるREst呼び出しがあります。ペイロードに複雑なデータ型(XMLの保険証券)が必要であり、複雑なビジネスロジックを実行し、保険料を返します。状態には何も影響しないため、本質的にべき等です。

現在、REst呼び出しはPOSTです。これに対する正当な理由は、メッセージ本文が大きく、InternetExplorerでドロップされて乱雑になる可能性があるということです。ただし、べき等であり、基本的にGETVsPOSTに違反します。

誰もが以前にこの難問に直面しましたか?ありがとう。

4

3 に答える 3

3

含意が可逆的であるかどうかはわかりません。

GET SHOULD be idempotent定義されているものですが、べき等であることを禁じるものはありませんPOST

あなたの代わりに、私はそのPOST方法に行きます。さらに、リクエストにエンティティが含まれている場合は、GET

于 2013-02-14T15:58:50.130 に答える
2

私は同じ問題を抱えており、私の解決策は実用的です。私のAPIは、GETリクエストの制限に直面している場合でも、べき等に対してPOSTを使用します。

If the form data would contain non-ASCII characters or;
If the form data set is large.

他にも例外があると思いますが、今は考えられません。

更新:もう1つの例外。何らかの理由で、リクエストURLにパラメータを表示したくない場合は、べき等にもPOSTを使用します。

于 2013-02-14T15:59:32.990 に答える
1

大きなボディのGETにPOSTリクエストを使用する代わりの方法はないと思いますが、POSTリクエストは通常​​(リバース)プロキシによってキャッシュされないことに注意してください。ほとんどのHTTPキャッシュ(私が知っている)は、オブジェクトのキャッシュキーを計算するためにPOST本体を考慮していません。計算にリソースが集中する場合、これは問題になる可能性があります。

于 2013-02-24T01:51:15.017 に答える