apispec-webframeworks 1.1.0

Last updated:

0 purchases

apispec-webframeworks 1.1.0 Image
apispec-webframeworks 1.1.0 Images
Add to Cart

Description:

apispecwebframeworks 1.1.0

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.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.