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.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2fc80de054e409b4320f6dd06696ca472a350538241deaa8bcbce5c503f222b |
|
MD5 | 4c20a5f69cd69a609d3feeeeae90b5d6 |
|
BLAKE2b-256 | c62e13a71a9539f1116f4e40eb1bda72ef29fe18f270bd7774960cf64dec1108 |
Close
Hashes for flask_marshmallow_openapi-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b72db57a2d52695d7292ffac119e917f22854790b4529c4eb2026e916a9faa07 |
|
MD5 | 2094e9719854faec930482abaa0fde13 |
|
BLAKE2b-256 | f8d971ec39dc302a2887d411b67cfcd4f831fed3bdb813cbe84f2b8744fd7796 |