REST API を実装したいのですが、GET 要求に本文が必要です。(ここで説明したように: HTTP GET with request body )
GET リクエストでボディを送信できない HTTP クライアントはありますか? メッセージ ボックスは赤ですが、Fiddler はそれを実行できます。
REST API を実装したいのですが、GET 要求に本文が必要です。(ここで説明したように: HTTP GET with request body )
GET リクエストでボディを送信できない HTTP クライアントはありますか? メッセージ ボックスは赤ですが、Fiddler はそれを実行できます。
原則として、REST での GET の考え方は、すべてのパラメーターが URL で送信されるということです。あなたが含めた質問に対する答えが示すように、それは実行可能ですが、REST の要点を逃しています。つまり、一貫した webbish インターフェイスを持つことです。複雑なデータをエンドポイントに渡したい場合は、おそらく POST を使用することをお勧めします。これは、ユーザーがボディを持つことを期待するためです。その実装を再検討することを強くお勧めします。
しかし、あなたの実際の質問には、GET で本文を送信できないクライアントがあることを確認してください。ほとんどの場合、クライアントはPythonのurlib2などのプログラムであると思います.GETで本体を設定できますが、実際にはモジュールの意図された使用法ではないため、プログラマーに奇妙なことを強いています. さらに重要なことは、REST API の考え方はクライアントにとらわれないことです。そのため、ここで API の設計をやり直す必要があるように思えます。
GET HTTP リクエストで body を使用することはお勧めできません。はい、「デジュール」の HTTP GET はボディを持つことができるようですが、「デファクト」には問題があります。
あなたは難しい方法を探していますか?body で GET を使用すると、非常に多くの落とし穴があります。他の HTTP 動詞を使用しないのはなぜですか?
たとえば、以下よりも POST (または他の動詞) を使用します。
より難しい方法を探す必要はありません:)