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
File details
Details for the file apispec-clear-unusable-1.0.1.tar.gz
.
File metadata
- Download URL: apispec-clear-unusable-1.0.1.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68afb78ebc93299ee96798d8d87fdd805a3997e2f5aa3df4276d5cd3a44211b4 |
|
MD5 | dc7c93e789b7ac872e749c21e91d9c3f |
|
BLAKE2b-256 | df9c02b5b81dfad5264eefe263701c86be38756f006e10fa7c2d44c1e70fad46 |
File details
Details for the file apispec_clear_unusable-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: apispec_clear_unusable-1.0.1-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bf26472d0785edbed407cf05b80c06909a808e09da350af12ecd9cd8b3a89d9 |
|
MD5 | 2a5cad943ec0c2fd8f31afc41040c993 |
|
BLAKE2b-256 | bc6624db73cae0056cb96b08fd60387e8df8c72ff5a365b07edc671df426ed88 |