Skip to main content

Flask + marshmallow + OpenAPI

Project description

Overview

PyPI Status license python_versions documentation

Provides OpenAPI documentation generated from code for Flask APIs built around marshmallow schemas.

This hackish and organically grown ™ package was created because no other similar projects worked exactly the way I wanted them.

Similar projects:

Installation

pip install flask-marshmallow-openapi

Documentation

Read the Docs

What does it do?

Searches your codebase for marshmallow schemas and 🎖️ decorated 🎖️ Flask routes.

It then produces swagger.json and injects it into self-hosted ReDoc and SwaggerUI documentation viewers.

api = flask.Blueprint("my_api", __name__)


class BookSchema(ma.Schema):
    id = ma.fields.Integer(as_string=True)
    title = ma.fields.String(allow_none=False)
    publisher = ma.fields.String(allow_none=False)
    isbn = ma.fields.String(allow_none=False)


@open_api.get_list(BookSchema)
@api.route("/books", methods=["GET"])
def books_list():
    return "<p>Hello, World!</p>"


app = flask.Flask(__name__)
app.register_blueprint(api, url_prefix="/v1")


conf = OpenAPISettings(
    api_version="v1", api_name="My API", app_package_name="my_api", mounted_at="/v1"
)
docs = OpenAPI(config=conf)
docs.init_app(app)

New app routes:

$ flask routes

Endpoint               Methods  Rule
---------------------  -------  -------------------------------
# ...
open_api.re_doc        GET      /v1/docs/re_doc
open_api.static        GET      /v1/docs/static/<path:filename>
open_api.swagger_json  GET      /v1/docs/static/swagger.json
open_api.swagger_ui    GET      /v1/docs/swagger_ui
open_api.swagger_yaml  GET      /v1/docs/static/swagger.yaml
# ...

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_marshmallow_openapi-0.7.2.tar.gz (985.3 kB view details)

Uploaded Source

Built Distribution

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

flask_marshmallow_openapi-0.7.2-py3-none-any.whl (994.9 kB view details)

Uploaded Python 3

File details

Details for the file flask_marshmallow_openapi-0.7.2.tar.gz.

File metadata

File hashes

Hashes for flask_marshmallow_openapi-0.7.2.tar.gz
Algorithm Hash digest
SHA256 a23ae8bad06fedb19060b7ce9c09f36f6b5f38cf63ebadd8fd7e25ad6d9b63c8
MD5 ed66c02456eda81d2419ac5e7a034778
BLAKE2b-256 c11622bb0ab0a84de6d75089d0bf9c442b96fffe8fd08a3aa6bd51f7fa5be546

See more details on using hashes here.

Provenance

The following attestation bundles were made for flask_marshmallow_openapi-0.7.2.tar.gz:

Publisher: pypi-publish.yaml on tadams42/flask-marshmallow-openapi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flask_marshmallow_openapi-0.7.2-py3-none-any.whl.

File metadata

File hashes

Hashes for flask_marshmallow_openapi-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 95758ad94feaf33bd10979ab5311e6e5b3b750fa23f47510d48d3b1e9bd1c540
MD5 098b2a8fc6c8cbe2228a1902cdc12157
BLAKE2b-256 b1fff08c1a8a30f08ba0813905e6f8b0da3980125ef926b5a4694050c3189b36

See more details on using hashes here.

Provenance

The following attestation bundles were made for flask_marshmallow_openapi-0.7.2-py3-none-any.whl:

Publisher: pypi-publish.yaml on tadams42/flask-marshmallow-openapi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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