3

私はフラスコアプリを実行しており、flasgger を使用して Swagger Specs と Swagger UI を生成しています。私の API では、ベアラー トークンを使用してリクエストを認証する必要があります。ページ上のボタンを取得してトークンを設定できます。しかし、それはリクエストを通じて送信されません。OpenAPI 3.0.3 を使用しています。以下は私のコードです:

from flasgger import Swagger

swagger_template = {
    'components': {
        'securitySchemes': {
            'bearerAuth': {
                'type': 'http',
                'scheme': 'bearer',
                'bearerFormat': 'JWT'
            }
        },
        'security': {
            'bearerAuth': []
        }
    }
}

# Register controllers
api = Api(app)
swagger = Swagger(app=app, config={
    'headers': [

    ],
    'title': 'Model Design Application API',
    'specs': [
        {
            'endpoint': 'apispec',
            'route': '/apispec.json'
        }
    ],
    'openapi': '3.0.3'
}, template=swagger_template)

これは、Swagger UI で設定されるトークンです。

ここに画像の説明を入力

これは、Swagger で取得する UI です。

ここに画像の説明を入力

これは、生成される apispec.json です。

{
  "definitions": {
    "User": {
      "properties": {
        "username": {
          "default": "Steven Wilson", 
          "description": "The name of the user", 
          "type": "string"
        }
      }
    }
  }, 
  "info": {
    "description": "powered by Flasgger", 
    "termsOfService": "/tos", 
    "title": "Model Design Application API", 
    "version": "0.0.1"
  }, 
  "openapi": "3.0.3", 
  "paths": {
    "/profile": {
      "get": {
        "description": "It works also with swag_from, schemas and spec_dict<br/>", 
        "responses": {
          "200": {
            "description": "A single user item", 
            "schema": {
              "$ref": "#/definitions/User"
            }
          }
        }, 
        "summary": "This examples uses FlaskRESTful Resource"
      }
    }
  }, 
  "security": {
    "bearerAuth": []
  }, 
  "securitySchemes": {
    "bearerAuth": {
      "bearerFormat": "JWT", 
      "scheme": "bearer", 
      "type": "http"
    }
  }
}

ご意見をお聞かせください。どんな助けでも大歓迎です。

4

1 に答える 1