Flask + marshmallow + OpenAPI
Project description
Overview
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for flask_marshmallow_openapi-0.6.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 908e64e673f7f16c50047f31aa42f42996d5fbbea9bccf94e4a1ce3c28930fe7 |
|
MD5 | d59474f0f5bb54046cccb03f40989591 |
|
BLAKE2b-256 | 3ad2eb8363a37692ccb92f5c1c45ac0b0efb36368ccab2752ba1e0dd43b15655 |
Close
Hashes for flask_marshmallow_openapi-0.6.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2df916427a548203dc3326ae564ecd41a617ec7f8da0408af8c9f869d59212c2 |
|
MD5 | 979cce71509b14be68e62499a8712d00 |
|
BLAKE2b-256 | 818053563bc1bde2fae4aaf158e6c8a99381b827f5d4f0af1a003df2e52e2d6b |