apispec plugins for integrating with various web frameworks.
These plugins used to be in apispec.ext but have since been moved to their own package.
Included plugins:
apispec_webframeworks.aiohttpapispec_webframeworks.bottleapispec_webframeworks.flaskapispec_webframeworks.tornado
To migrate from older versions of apispec, install this package with
pip install apispec-webframeworksChange your imports, like so:
# apispec<1.0.0 from apispec.ext.flask import FlaskPlugin # apispec>=1.0.0 from apispec_webframeworks.flask import FlaskPluginfrom flask import Flask from apispec import APISpec from apispec.ext.marshmallow import MarshmallowPlugin from apispec_webframeworks.flask import FlaskPlugin from marshmallow import Schema, fields spec = APISpec( title="Gisty", version="1.0.0", info=dict(description="A minimal gist API"), plugins=[FlaskPlugin(), MarshmallowPlugin()], ) app = Flask(__name__) class GistParameter(Schema): gist_id = fields.Int() class GistSchema(Schema): id = fields.Int() content = fields.Str() @app.route("/gists/<gist_id>") def gist_detail(gist_id): """Gist detail view. --- get: parameters: - in: path schema: GistParameter responses: 200: schema: GistSchema """ return "details about gist {}".format(gist_id) # Since `path` inspects the view and its route, # we need to be in a Flask request context with app.test_request_context(): spec.path(view=gist_detail)For documentation for a specific plugin, see its module docstring.
- Clone and cd into this repo
- Create and activate a virtual environment
- Install this package (in editable mode) and the development dependencies
$ pip install '.[dev]'
- Install pre-commit hooks
$ pre-commit install
To run all tests:
$ pytest
To run syntax checks:
$ tox -e lint
(Optional) To run tests in all supported Python versions in their own virtual environments (must have each interpreter installed):
$ tox
MIT licensed. See the bundled LICENSE file for more details.