Plugin for apispec which helps reusing the documentation on a muti-endpoint function/method.
Project description
apispec-clear-unusable
Plugin for apispec which helps reusing the documentation on a muti-endpoint function/method.
Example with flask-restful
from apispec import APISpec
from flask import Flask, jsonify
from flask_restful import Resource, Api
from marshmallow import Schema, fields
# Create an APISpec
spec = APISpec(
title='Random swagger Petstore',
version='1.0.0',
plugins=[
'apispec.ext.flask',
'apispec.ext.marshmallow',
'brunoais.apispec.ext.clear_unusable',
],
)
# This example uses flask but it also works with other frameworks
app = Flask(__name__)
api = Api(app)
class RandomPet(Resource):
def get(self, species=None, race=None):
"""A cute random furry animal.
---
description: Get a random pet
parameters:
- in: path
name: species
type: string
description: The species of the animal to be randomly selected
parameters:
- in: path
name: race
type: string
description: The race of the animal to be randomly selected
responses:
200:
description: A pet to be returned
schema: PetSchema
"""
return get_random_pet(species=species, race=race), 200
api.add_resource(RandomPet, '/pets/random', endpoint='randompet')
api.add_resource(RandomPet, '/pets/<species>/random', endpoint='randompet_species')
api.add_resource(RandomPet, '/pets/<species>/races/<race>/random', endpoint='randompet_species_race')
spec.definition('Category', schema=CategorySchema)
spec.definition('Pet', schema=PetSchema)
with app.test_request_context():
spec.add_path(view=random_pet)
Output becomes
definitions:
#...
parameters: {}
paths:
/pets/random:
get:
description: Get a random pet
parameters: []
responses:
200:
description: A pet to be returned
schema: {$ref: '#/definitions/Pet'}
/pets/{species}/random:
get:
description: Get a random pet
parameters:
- {description: The species of the animal to be randomly selected, in: path,
name: species, required: true, type: string}
responses:
200:
description: A pet to be returned
schema: {$ref: '#/definitions/Pet'}
/pets/{species}/races/{race}/random:
get:
description: Get a random pet
parameters:
- {description: The species of the animal to be randomly selected, in: path,
name: species, required: true, type: string}
- {description: The race of the animal to be randomly selected, in: path, name: race,
required: true, type: string}
responses:
200:
description: A pet to be returned
schema: {$ref: '#/definitions/Pet'}
swagger: '2.0'
Installation
pip install apispec-clear-unusable
License
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for apispec-clear-unusable-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68afb78ebc93299ee96798d8d87fdd805a3997e2f5aa3df4276d5cd3a44211b4 |
|
MD5 | dc7c93e789b7ac872e749c21e91d9c3f |
|
BLAKE2b-256 | df9c02b5b81dfad5264eefe263701c86be38756f006e10fa7c2d44c1e70fad46 |
Close
Hashes for apispec_clear_unusable-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bf26472d0785edbed407cf05b80c06909a808e09da350af12ecd9cd8b3a89d9 |
|
MD5 | 2a5cad943ec0c2fd8f31afc41040c993 |
|
BLAKE2b-256 | bc6624db73cae0056cb96b08fd60387e8df8c72ff5a365b07edc671df426ed88 |