Skip to content

dev-rijan/flask-classful-apispec

Repository files navigation

Flask classful apispec

A pluggable API specification generator generator for Flask classful based on apispec

Features

  • Utilities for parsing flask classful docstrings
  • Support for marshmallow

Installation

$ pip install flask-classful-apispec 

Usage

import json from flask import Flask from flask_classful import FlaskView from flask_classful_apispec import APISpec from marshmallow import Schema, fields app = Flask(__name__) app.config["DOC_TITLE"] = "Swagger petstore" app.config["DOC_VERSION"] = "0.1.1" app.config["DOC_OPEN_API_VERSION"] = "3.0.2" spec = APISpec(app) pets = [ {'id': 0, 'name': 'Kitty', 'category': 'cat'}, {'id': 1, 'name': 'Coco', 'category': 'dog'} ] class PetSchema(Schema): id = fields.Integer() name = fields.String() category = fields.String() class PetView(FlaskView): def index(self): """A pet api endpoint.  ---  description: Get a list of pets  responses:  200:  schema: PetSchema  """ return PetSchema(many=True).dumps(pets) PetView.register(app) spec.paths(PetView) print(json.dumps(spec.to_dict(), indent=2)) if __name__ == "__main__": app.run()

Generated OpenAPI Spec

{ "paths": { "/pet/": { "get": { "description": "Get a list of pets", "responses": { "200": { "schema": { "$ref": "#/components/schemas/Pet" } } } } } }, "info": { "title": "Swagger petstore", "version": "0.1.1" }, "openapi": "3.0.2", "components": { "schemas": { "Pet": { "type": "object", "properties": { "name": { "type": "string" }, "id": { "type": "integer" }, "category": { "type": "string" } } } } } }

Documentation

License

MIT licensed. See the bundled LICENSE file for more details.

About

Automatic api docs generation for flask classful based on apispec

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages