Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apispec-clear-unusable-1.0.1.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

apispec_clear_unusable-1.0.1-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file apispec-clear-unusable-1.0.1.tar.gz.

File metadata

File hashes

Hashes for apispec-clear-unusable-1.0.1.tar.gz
Algorithm Hash digest
SHA256 68afb78ebc93299ee96798d8d87fdd805a3997e2f5aa3df4276d5cd3a44211b4
MD5 dc7c93e789b7ac872e749c21e91d9c3f
BLAKE2b-256 df9c02b5b81dfad5264eefe263701c86be38756f006e10fa7c2d44c1e70fad46

See more details on using hashes here.

File details

Details for the file apispec_clear_unusable-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for apispec_clear_unusable-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8bf26472d0785edbed407cf05b80c06909a808e09da350af12ecd9cd8b3a89d9
MD5 2a5cad943ec0c2fd8f31afc41040c993
BLAKE2b-256 bc6624db73cae0056cb96b08fd60387e8df8c72ff5a365b07edc671df426ed88

See more details on using hashes here.

Supported by

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