例:
方法:
GET
応答:
collection
一致するすべてのアイテムa search term
。
問題: 検索用語が長すぎて、Web サーバーの URL の最大長を超えている可能性があります。
非常に長い検索語を許可し、RESTful を維持するにはどうすればよいですか?
例:
方法:GET
応答:collection
一致するすべてのアイテムa search term
。
問題: 検索用語が長すぎて、Web サーバーの URL の最大長を超えている可能性があります。
非常に長い検索語を許可し、RESTful を維持するにはどうすればよいですか?
インスピレーションを得るために、 「RESTful 呼び出しスタイルを使用している」Google Translate の API v2を見てみました。
当然、翻訳するテキストはかなり長くなります。そのため、Google はオプションで を使用してリクエストを送信できますPOST
が、ひねりがあります。
を使用する
POST
には、ヘッダーを使用して Translate API に要求を(使用)X-HTTP-Method-Override
として扱うように指示する必要があります。GET
X-HTTP-Method-Override: GET
したがって、リクエストをリクエストに意味的に変換することができます。POST
GET
(この発見により、質問にx-http-method-overrideタグを追加することになりました。)
クエリが最大長を超えるほど長くなる可能性がある場合、それは悪臭です (ブラウザーのデファクトは 2000 文字ですが、REST API にアクセスする他の手段ではそれ以上になる可能性があります)。
ユーザーがそれだけの量のデータを渡すことができる場合は、URL ではなく、リクエストの本文/データ フィールドに入れる必要があります。