tornado-swagger icon indicating copy to clipboard operation
tornado-swagger copied to clipboard

Swagger API Documentation builder for tornado server.

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 by\ aiohttp-swagger <https://github.com/cr0hn/aiohttp-swagger>__\ package (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|

.. code:: python

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

Version 1.4.3


- Update swagger-ui lib from `3.37.2` to `4.13.2`  [issue-62](https://github.com/mrk-andreev/tornado-swagger/issues/62) [issue-61](https://github.com/mrk-andreev/tornado-swagger/issues/61)


Version 1.4.2
  • Update dev requirements (fix broken packages)
  • Update PyYAML from PyYAML==5.4 to PyYAML>=5.4 issue-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


-  Add swagger parameter ref (@register_swagger_parameter). Thanks to
   [@Weltraumpenner](https://github.com/Weltraumpenner)

Version 1.2.11
  • Fix link to spec swagger.json issue <https://github.com/mrk-andreev/tornado-swagger/issues/47>__.

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 <https://github.com/mrk-andreev/tornado-swagger/issues/35>`__
-  Specify supported python versions: 3.5, 3.6, 3.7, 3.8, nightly

Version 1.2.6
~~~~~~~~~~~~~

-  Fix issue with ``StaticFileHandler``
   (https://github.com/mrk-andreev/tornado-swagger/pull/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”
   (https://github.com/mrk-andreev/tornado-swagger/issues/23)

Version 1.2.3
~~~~~~~~~~~~~

-  Fix ``\t`` bug in Windows
   (https://github.com/mrk-andreev/tornado-swagger/issues/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|

.. |Maintainability| image:: https://api.codeclimate.com/v1/badges/d45717a5cfedeaef195a/maintainability
   :target: https://codeclimate.com/github/mrk-andreev/tornado-swagger/maintainability
.. |Snyk Vulnerabilities for GitHub Repo| image:: https://img.shields.io/snyk/vulnerabilities/github/mrk-andreev/tornado-swagger.svg
.. |FOSSA Status| image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmrk-andreev%2Ftornado-swagger.svg?type=shield
   :target: https://app.fossa.io/projects/git%2Bgithub.com%2Fmrk-andreev%2Ftornado-swagger?ref=badge_shield
.. |GitHub| image:: https://img.shields.io/github/license/mrk-andreev/tornado-swagger.svg
.. |Code style: black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/psf/black
.. |PyPI| image:: https://img.shields.io/pypi/v/tornado-swagger.svg
   :target: https://pypi.org/project/tornado-swagger/
.. |TravisCI| image:: https://travis-ci.org/mrk-andreev/tornado-swagger.svg?branch=master
   :target: https://travis-ci.org/mrk-andreev/tornado-swagger
.. |AppVeyor| image:: https://img.shields.io/appveyor/ci/mrk-andreev/tornado-swagger/master.svg
   :target: https://ci.appveyor.com/project/mrk-andreev/tornado-swagger/branch/master
.. |image8| image:: https://github.com/mrk-andreev/tornado-swagger/blob/master/docs/wiki__swagger_single_endpoint.png
.. |FOSSA Status Large| image:: https://app.fossa.io/api/projects/git%2Bgithub.com%2Fmrk-andreev%2Ftornado-swagger.svg?type=large
   :target: https://app.fossa.io/projects/git%2Bgithub.com%2Fmrk-andreev%2Ftornado-swagger?ref=badge_large