web-dev-qa-db-ja.com

OpenAPI 3.0でヘッダーパラメーターを定義する方法

OpenAPI(Swagger)2.0では、次のようにヘッダーパラメーターを定義できます。

paths:
  /post:
    post:
      parameters:
        - in: header
          name: X-username

しかし、OpenAPI 3.0.0では、パラメーターはリクエスト本文に置き換えられ、さらに認証に使用されるヘッダーパラメーターを定義する方法が見つかりません。

OpenAPI 3.0.0でリクエストヘッダーを定義する正しい方法は何ですか?

9
kritika agarwal

OpenAPI 3.0では、ヘッダーパラメータはOpenAPI 2.0と同じ方法で定義されますが、typeschemaに置き換えられています。

paths:
  /post:
    post:
      parameters:
        - in: header
          name: X-username
          schema:
            type: string

疑問がある場合は、 パラメータの説明 ガイドを確認してください。

ただし、Swagger 3.0.0では、パラメーターはリクエスト本文に置き換えられます。

これは、フォームとボディのパラメータにのみ当てはまります。他のパラメータータイプ(パス、クエリ、ヘッダー)は、引き続きparametersとして定義されます。

認証にさらに使用されるヘッダーパラメータを定義します。

認証関連のパラメーターを定義するより良い方法は、securitySchemesでこれらのパラメーターを明示的に定義するのではなく、parametersを使用することです。セキュリティスキームは、APIキー、アプリID /シークレットなどのパラメーターに使用されます。

components:
  securitySchemes:
    usernameHeader:
      type: apiKey
      in: header
      name: X-Username

paths:
  /post:
    post:
      security:
        - usernameHeader: []
      ...
13
Helen