Skip to main content

Add openapi docs to flask app using Flask-Pydantic

Project description

Flask-Pydantic-Docs

Installation

python3 -m pip install Flask-Pydantic-Docs

Usage

Example

# necessary imports

app = Flask(__name___)
openapi = OpenAPI()

access_denied = APIError(code=403, msg="Access Denied")

@app.route("/post", methods=["POST"])
@openapi_docs(response=ResponseModel, tags=["demo"], exceptions=[access_denied])
@validate()
def post(body: BodyModel, query: QueryModel):
    return ResponseModel(
        id=id_,
        age=query.age,
        name=body.name,
        nickname=body.nickname,
    )
...

openapi.register(app)

NOTE:

  • Since the openapi_docs decorator is to register the schemas based on the models used by the view function, so the models have to be put in the view function arguments with annotations as shown in the above example. Otherwise, the schemas cannot be captured.

  • The statement openapi.register needs to be run after all view functions or register_blueprint.

Add Auth Security Schemes

# necessary imports, app and model definition

openapi = OpenAPI(
    extra_props={
        "components": {
            "securitySchemes": {
                "bearerAuth": {
                    "type": "http",
                    "scheme": "bearer",
                    "bearerFormat": "JWT",
                    "in": "header",
                }
            }
        },
        "security": [{"bearerAuth": []}]
    },
)

...

openapi.register(app)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Flask-Pydantic-Docs-0.0.11.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Flask_Pydantic_Docs-0.0.11-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file Flask-Pydantic-Docs-0.0.11.tar.gz.

File metadata

  • Download URL: Flask-Pydantic-Docs-0.0.11.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.11

File hashes

Hashes for Flask-Pydantic-Docs-0.0.11.tar.gz
Algorithm Hash digest
SHA256 76c7ac32a369f72a328f2170561aa2e897b3ffe015b37da17d89780b9d8547f4
MD5 a77d2c2acb4c76c40e630a40d70053a5
BLAKE2b-256 f281fa6f8281a4940c3cb30f17bed640a3e640fa8019d4e03c3c5138d3592da2

See more details on using hashes here.

File details

Details for the file Flask_Pydantic_Docs-0.0.11-py3-none-any.whl.

File metadata

  • Download URL: Flask_Pydantic_Docs-0.0.11-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.11

File hashes

Hashes for Flask_Pydantic_Docs-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 4534aa49aa9206dbb5bc6e2a9bfcb30caf76492ba9438abd2968c4089cf04525
MD5 49daed7fd74a29bce703beb4e273d0ec
BLAKE2b-256 e95d87c750e9fbfa67a0a4ffa8579642b447f4ee3b137ecb1276048bc64b0bd0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page