Skip to content

Swagger API Documentation builder for tornado server.

License

Notifications You must be signed in to change notification settings

aleasoluciones/tornado-swagger

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.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](mrk-andreev#58)

Version 1.4.3

Version 1.4.2

  • Update dev requirements (fix broken packages)
  • Update PyYAML from PyYAML==5.4 to PyYAML>=5.4 [issue-59](mrk-andreev#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

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” (mrk-andreev#23)

Version 1.2.3

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

About

Swagger API Documentation builder for tornado server.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 62.0%
  • PowerShell 20.0%
  • Batchfile 9.3%
  • HTML 5.7%
  • Makefile 1.4%
  • Shell 0.9%
  • Dockerfile 0.7%