tornado-swagger

Swagger API Documentation builder for tornado server


Keywords
python, swagger, tornado
License
MIT
Install
pip install tornado-swagger==1.5.0

Documentation

tornado-swagger

Maintainability Snyk Vulnerabilities for GitHub Repo FOSSA Status GitHub Code style: black

PyPI
PyPI
Linux Windows
TravisCI AppVeyor

tornado-swagger: Swagger API Documentation builder for tornado server. Inspired byaiohttp-swaggerpackage (based on this package sources).

Documentation https://github.com/mrk-andreev/tornado-swagger/wiki
Code https://github.com/mrk-andreev/tornado-swagger
Issues https://github.com/mrk-andreev/tornado-swagger/issues
Python version Python 3.7, 3.8, 3.9, 3.10, 3.11 nightly
Swagger Language Specification https://swagger.io/specification/v2/

Installation

pip install -U tornado-swagger

What’s tornado-swagger

tornado-swagger is a plugin for tornado server that allow to document APIs using Swagger show the Swagger-ui console ( default url /api/doc).

image8

import tornado.web
from tornado_swagger.model import register_swagger_model
from tornado_swagger.parameter import register_swagger_parameter


class PostsDetailsHandler(tornado.web.RequestHandler):
    def get(self, posts_id):
        """
        ---
        tags:
        - Posts
        summary: Get posts details
        description: posts full version
        produces:
        - application/json
        parameters:
        -   $ref: '#/parameters/PostId'
        responses:
            200:
              description: list of posts
              schema:
                $ref: '#/definitions/PostModel'
        """


@register_swagger_parameter
class PostId:
    """
    ---
    name: posts_id
    in: path
    description: ID of post
    required: true
    type: string
    """


@register_swagger_model
class PostModel:
    """
    ---
    type: object
    description: Post model representation
    properties:
        id:
            type: integer
            format: int64
        title:
            type: string
        text:
            type: string
        is_visible:
            type: boolean
            default: true
    """

What’s new?

Version 1.5.0

Version 1.4.5

  • Specify supported python versions: 3.7, 3.8, 3.9, 3.10, 3.11 and nightly
  • Remove flake8-eradicate, flake8-isort from dev deps
  • Create make test-in-docker for test application across python versions

Version 1.4.4

  • Fix path parsing with groups (skip + warning) [issue-58](#58)

Version 1.4.3

  • Update swagger-ui lib from 3.37.2 to 4.13.2 [issue-62](#62) [issue-61](#61)

Version 1.4.2

  • Update dev requirements (fix broken packages)
  • Update PyYAML from PyYAML==5.4 to PyYAML>=5.4 [issue-59](#59)
  • Specify encoding in tornado_swagger/setup.py::open

Version 1.4.1

  • Fix pypi build (migrate README from md to rst)

Version 1.4.0

  • Add experimental openapi support (api_definition_version = API_OPENAPI_3; examples/model_and_param_declaration_openapi3.py)

Version 1.3.0

Version 1.2.11

  • Fix link to spec swagger.json issue.

Version 1.2.10

  • Update PyYAML version to 5.4 (Fix for CVE-2020-14343)

Version 1.2.9

  • Fix handler args name parsing (examples/args_recognize.py). Thanks to [@reubinoff]

Version 1.2.8

  • Add security to setup. Thanks to [@daominwang](https://github.com/daominwang)
  • Add black code formatter
  • Update swagger-ui library to 3.37.2
  • Add integrity attribute to script / link tags
  • Remove Python 3.5 support

Version 1.2.7

  • Add display_models param to setup (defaultModelsExpandDepth). Thanks to [@Sloknatos](https://github.com/Sloknatos)
  • Fix swagger-ui bundle CVE-2019-17495
  • Specify supported python versions: 3.5, 3.6, 3.7, 3.8, nightly

Version 1.2.6

  • Fix issue with StaticFileHandler (#28)

Version 1.2.5

  • Update dependencies
    • PyYAML==5.3.1 fix vulnerabilities
    • pytest==6.0.1, pytest-flake8==1.0.6 fix test crash

Version 1.2.4

  • Fix “index out of range issue for StaticFileHandler” (#23)

Version 1.2.3

  • Fix \t bug in Windows (#21)

Version 1.2.1

  • Support wrapped methods
  • Remove jinja2 from deps

Version 1.2.0

  • Replace local js/css to cdn
  • Remove static files serving

Version 1.1.0

  • Swagger model definition
  • Parameters filling in route path
  • Schema definition
  • export_swagger(routes) as public function
  • Update frontend

Version 1.0.0

  • First version released

License

FOSSA Status