APIキー-コンテンツまたはヘッダー内


14

現時点でAPIに取り組んでおり、APIキーを送信するのに最適な場所がどこにあるべきかについて意見を収集したかっただけです。URLに入れるべきではないことを知っています。これにより、リクエストヘッダーまたはメッセージ本文が残ります。

それをヘッダーに入れると、すべてのサービスで使用できる一般的なメソッドを引き出すことができますが、私が渡された仕様はそれを本体に必要としています(つまり、JSON文字列でPOST本体のシリアル化されたオブジェクト)。


また、すべての要求タイプに本文が必要なわけではなく、本文なしで要求を検証する場合は、キーがヘッダーにある必要があることに注意してください。
ワイマー

回答:


11

HTTPには、Authorizationそのためのヘッダーがあります。

通常、ユーザーの資格情報を提供するために使用されますが、APIの場合、クライアントのIDと対応するAPIキーを含めることができます。

いくつかの利点があります。

  • さまざまなフレームワークからのサポート。多くのフレームワークでは、Authorization認証を行うためにヘッダーが必要です。それを使用しないと、これらのフレームワークにカスタム値を提供するための追加コードを強制的に作成します。

  • さまざまなツールからのサポート。たとえば、CURL。

  • チームに参加している新しい開発者(またはAPIの新しいクライアントを設計している開発者)からの「WTFは、このAPIキーをどこで検索/配置しますか?!」

  • その後、のようなHTTPステータスコードの定義を使用することができ401 Unauthorizedそのために

    応答には、WWW-Authenticateヘッダーフィールドを含める必要があります[...]クライアントは、適切なAuthorizationヘッダーフィールドを使用してリクエストを繰り返すことができます。

リクエストの本文に移動すると、すぐに痛みを感じるようになります。ほとんどのフレームワークとツールは、リクエストに本文を追加することをあまり簡単にしないため、APIが必要以上に難しくなる可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.