私はHTTPを経由するようにAPIを設計していて、HTTP POSTコマンドを使用するのかどうか疑問に思っていますが、URLクエリパラメータのみを使用し、リクエストボディを使用しないのが良い方法です。
考慮事項:
- 「優れたWebデザイン」では、POSTを介してべき等でないアクションを送信する必要があります。これはべき等ではないアクションです。
- リクエストパラメータがURLに含まれていると、このアプリの開発とデバッグが簡単になります。
- APIは、広範囲での使用を目的としていません。
- 本文なしでPOSTリクエストを行うと、少し作業が増えるようです。たとえば、
Content-Length: 0
ヘッダーを明示的に追加する必要があります。 - また、ボディのないPOSTは、ほとんどの開発者やHTTPフレームワークの期待に少し反しているようにも思えます。
リクエストの本文ではなく、URLクエリを介してPOSTリクエストでパラメーターを送信することに他に落とし穴や利点はありますか?
編集:これが検討されている理由は、操作がべき等ではなく、取得以外の副作用があるためです。HTTP仕様を参照してください。
特に、GETメソッドとHEADメソッドは、取得以外のアクションを実行することの重要性を持たないことが規約に定められています。これらの方法は「安全」であると考えられるべきです。これにより、ユーザーエージェントはPOST、PUT、DELETEなどの他のメソッドを特別な方法で表すことができ、ユーザーは安全でない可能性のあるアクションが要求されているという事実を知ることができます。
...
メソッドは、「偶数性」のプロパティを持つこともできます(エラーまたは期限切れの問題は別として)N> 0の同一リクエストの副作用は単一リクエストの場合と同じです。メソッドGET、HEAD、PUT、DELETEはこのプロパティを共有します。また、メソッドOPTIONSおよびTRACEには副作用がないため、本質的にべき等です。