Skip to content

marshmallow-code/apispec-webframeworks

Repository files navigation

apispec-webframeworks

PyPI package Build status marshmallow 3 compatible

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.aiohttp
  • apispec_webframeworks.bottle
  • apispec_webframeworks.flask
  • apispec_webframeworks.tornado

Migration from apispec<1.0.0

To migrate from older versions of apispec, install this package with

pip install apispec-webframeworks

Change your imports, like so:

# apispec<1.0.0 from apispec.ext.flask import FlaskPlugin # apispec>=1.0.0 from apispec_webframeworks.flask import FlaskPlugin

Example Usage

from 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)

Documentation

For documentation for a specific plugin, see its module docstring.

Development

  • 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 

Running tests

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 

License

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

About

Web framework plugins for apispec (formally in apispec.ext).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 12

Languages