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 |
|
BLAKE2-256 | df9c02b5b81dfad5264eefe263701c86be38756f006e10fa7c2d44c1e70fad46 |
Close
Hashes for apispec_clear_unusable-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bf26472d0785edbed407cf05b80c06909a808e09da350af12ecd9cd8b3a89d9 |
|
MD5 | 2a5cad943ec0c2fd8f31afc41040c993 |
|
BLAKE2-256 | bc6624db73cae0056cb96b08fd60387e8df8c72ff5a365b07edc671df426ed88 |