Skip to main content

Web framework plugins for apispec.

Project description

Latest version https://travis-ci.org/marshmallow-code/apispec-webframeworks.svg?branch=master 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.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 add_path inspects the view and its route,
# we need to be in a Flask request context
with app.test_request_context():
   spec.add_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 on Python 2.7, 3.5, 3.6, and 3.7 virtual environments (must have each interpreter installed):

$ tox

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apispec-webframeworks-0.1.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

apispec_webframeworks-0.1.0-py2.py3-none-any.whl (11.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file apispec-webframeworks-0.1.0.tar.gz.

File metadata

  • Download URL: apispec-webframeworks-0.1.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3

File hashes

Hashes for apispec-webframeworks-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ffe3b0723644d88404a7c6c110970de0d69dd5ef7f03c53ff6f7b5e73722ad19
MD5 47eff3c0c3f676ddf2d0fb93bf99be63
BLAKE2b-256 082624b592b305f73112099e59978ce963a0f100206578fe8e43c309d8f08d6d

See more details on using hashes here.

File details

Details for the file apispec_webframeworks-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: apispec_webframeworks-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3

File hashes

Hashes for apispec_webframeworks-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b07689095ca846646a25b33aee6a104ef03256a3ea68ebc48af38ef1043f223f
MD5 82c16c4636133e0e1d873a3c4c1fc020
BLAKE2b-256 2210e0c6d7e90bf3024c1df1e53ba1d467941263a442c2029bd17cd1144c74a8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page