1. ホーム
  2. http

[解決済み] REST API: カスタム HTTP ヘッダーと URL パラメータ

2022-11-17 12:47:11

質問

REST API のリクエスト部分でカスタム HTTP ヘッダを使用するのはどのような場合ですか?

を使うことはありますか?

GET /orders/view 
(custom HTTP header) CLIENT_ID: 23

の代わりに

GET /orders/view/client_id/23 or 
GET /orders/view/?client_id=23

どのように解決するのですか?

URL はリソースそのものを表します。 クライアント("client")は操作可能なリソースなので、ベースURLの一部である必要があります。 /orders/view/client/23 .

パラメータは、リソースへのアクセスをパラメータ化するためのものです。 これは特に投稿や検索で活きてきます。 /orders/find?q=blahblah&sort=foo . パラメータとサブリソースの間には微妙な境界線があります。 /orders/view/client/23/active versus /orders/view/client/23?show=active . 私は、サブリソースのスタイルを推奨し、パラメータは検索用に確保します。

各エンドポイントは状態遷移を表すので(ニーモニックにすると)、カスタムヘッダーは、リソースの名前(URL)、リソースの状態(ボディ)、リソースに直接影響するパラメータ(パラメータ)に関係しないものにのみ使用されるべきです。 つまり、カスタムヘッダにはリクエストに関する真のメタデータが残されているのです。

HTTP には、必要とされるほとんどのものをカバーする、非常に幅広いヘッダーの選択肢があります。 カスタム ヘッダーが登場するのは、ユーザーの代理で動作するシステム間のリクエストの場合です。 プロキシシステムはユーザーを検証し、quot を追加します。 X-User: userid をヘッダに追加し、エンドポイントをヒットするためにシステムのクレデンシャルを使用します。 受信側のシステムは、システム認証情報がユーザーの代わりに行動することを許可されていることを検証し、その後、ユーザーがアクションを実行することを許可されていることを検証します。