Skip to main content

Pyramid plugin for openapi spec generation

Project description

pyramid_apispec

pyramid_apispec allows you to create an OpenAPI specification file using apispec and an online OpenAPI explorer using the Swagger UI project for your Pyramid application and its marshmallow schemas.

Installation

pip install pyramid_apispec

Basic usage

Check out the demo folder and minimal application example by running:

pip install -e .[demo]
python demo/app.py

You can then visit your API explorer page at http://0.0.0.0:6543/api-explorer.

Examples

Hinting a route and its view:

@view_config(route_name='foo_route', renderer='json')
def foo_view():
    """A greeting endpoint.

    ---
    x-extension: value
    get:
        description: some description
        responses:
            200:
                description: response for 200 code
                schema:
                    $ref: #/definitions/BarBodySchema
    """
    return 'hi'

Rendering the spec as JSON response:

from pyramid_apispec.helpers import add_pyramid_paths

@view_config(route_name='openapi_spec', renderer='json')
def api_spec(request):
    spec = APISpec(
        title='Some API',
        version='1.0.0',
        plugins=[
            'apispec.ext.marshmallow'
        ],
    )
    # using marshmallow plugin here
    spec.definition('SomeFooBody', schema=MarshmallowSomeFooBodySchema)

    # inspect the `foo_route` and generate operations from docstring
    add_pyramid_paths(spec, 'foo_route', request=request)

    # inspection supports filtering via pyramid add_view predicate arguments
    add_pyramid_paths(
        spec, 'bar_route', request=request, request_method='post')
    return spec.to_dict()

Adding the API explorer view

To complement the specification file generation, this package can also provide an API explorer for your application's API via the Swagger UI project:

config.include('pyramid_apispec.views')
config.pyramid_apispec_add_explorer(
    spec_route_name='openapi_spec')

By default you need to pass the route name of the view that serves the OpenAPI specification in your application. If needed you can specify a Pyramid permission or custom callable (script_generator argument) to override the default JavaScript configuration of Swagger UI.

The default URL for the explorer is /api-explorer. This setting is controlled via the explorer_route_path argument.

Running tests

pip install -e .[dev]
tox

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

pyramid_apispec-0.1.4.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

pyramid_apispec-0.1.4-py2.py3-none-any.whl (9.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file pyramid_apispec-0.1.4.tar.gz.

File metadata

File hashes

Hashes for pyramid_apispec-0.1.4.tar.gz
Algorithm Hash digest
SHA256 e47048e383f2f5ce5c3c60ef2d2ba20b6cf795adc06377a584af190c5d6099e5
MD5 6efb37915787d353814bc926e547316d
BLAKE2b-256 fe78535a3061e732ae19266ac4f8c69d282d1002961fb4b65d6ad86371e03a11

See more details on using hashes here.

File details

Details for the file pyramid_apispec-0.1.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyramid_apispec-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aa96b7799671453060d7d0bafb21105bd7849c4f8c3e2fe8fe46b0d465fdd75c
MD5 8e30882b225b3076596652731f7e4f15
BLAKE2b-256 0307acab350df2abccda3e471e3065b124d320b0b17652387b19866532a4888f

See more details on using hashes here.

Supported by

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