1

REST API を設計しています。REST セマンティクスを使用してクライアントから GET 要求にデータを渡すための適切な方法を知りたいです。

簡単なユースケースは、サーバーからデータをフェッチするときに、クライアントに既に存在するデータのハッシュのリストを渡すオプションをクライアントに持たせて、サーバーがそのデータを除外できるようにすることです。データが変更されていない場合の応答。

簡単に検索すると、クエリ文字列を使用するのが正しい方法であることがわかります。

例えば、

GET /api/v1/Products?productsInClient?id1=MD5_HASH_1&id2=MD5_HASH_2 は 1 つの設計である可能性があります。

ただし、クエリ文字列内の ID の数が非常に長くなる可能性があるため、リクエスト本文でクエリ文字列データを渡すのが理想的です。そのような情報を GET 要求の本文で渡し、REST セマンティクスに準拠することは許容されますか?

別のオプションは、これを POST リクエストにすることですが、リクエストは実際にはサーバー上に新しいリソースを作成しないため、私はそれをしたくありません。唯一の追加のサーバー操作は、クライアントに既に存在する特定のリソースを除外することです。

4

1 に答える 1

1

これには、カスタム http ヘッダーを使用できます。URL の長さ、セキュリティ上の理由から最大サイズに設定できる長さに関連する制限がある一部の Web サーバー (たとえば、iis 6、ここを参照) にも問題がある可能性があります。

于 2012-07-23T20:25:38.747 に答える