https://github.com/avanov/routedsl
Python eDSL for your Web Routes
https://github.com/avanov/routedsl
Last synced: over 1 year ago
JSON representation
Python eDSL for your Web Routes
- Host: GitHub
- URL: https://github.com/avanov/routedsl
- Owner: avanov
- License: mit
- Created: 2020-04-11T01:24:55.000Z (about 6 years ago)
- Default Branch: develop
- Last Pushed: 2020-05-05T05:14:27.000Z (about 6 years ago)
- Last Synced: 2024-10-06T06:04:30.013Z (over 1 year ago)
- Language: Python
- Homepage: https://routedsl.rtfd.io
- Size: 15.6 KB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE
Awesome Lists containing this project
README
.. _badges:
.. image:: https://github.com/avanov/routedsl/workflows/GitHub%20CI/badge.svg?branch=develop
:target: https://github.com/avanov/routedsl/actions?query=workflow%3A%22GitHub+CI%22
.. image:: https://travis-ci.org/avanov/routedsl.svg?branch=develop
:target: https://travis-ci.org/avanov/routedsl
.. image:: https://circleci.com/gh/avanov/routedsl/tree/develop.svg?style=svg
:target: https://circleci.com/gh/avanov/routedsl/tree/develop
.. image:: https://coveralls.io/repos/github/avanov/routedsl/badge.svg?branch=develop
:target: https://coveralls.io/github/avanov/routedsl?branch=develop
.. image:: https://requires.io/github/avanov/routedsl/requirements.svg?branch=develop
:target: https://requires.io/github/avanov/routedsl/requirements/?branch=develop
:alt: Requirements Status
.. image:: https://readthedocs.org/projects/routedsl/badge/?version=develop
:target: http://routedsl.readthedocs.org/en/develop/
:alt: Documentation Status
.. image:: http://img.shields.io/pypi/v/routedsl.svg
:target: https://pypi.python.org/pypi/routedsl
:alt: Latest PyPI Release
Python eDSL for your Web Routes
===============================
.. code-block:: bash
pip install routedsl
Compose everything in one place
.. code-block:: python
from routedsl import *
routes = Routes() (
GET / 'users' / ('user_id', User, "User identifier")
| HEADERS | Headers
| RETURNS | JSON [ User ]
| HANDLER | get_user_info
| GUARDS | ( Headers.content_type | IS | 'application/json'
)
| DOCS | """Get a user profile in JSON format"""
)(
POST / 'users' / ('user_id', User)
| HEADERS | Headers
| PAYLOAD | JSON [ User ]
| RETURNS | OK [ JSON [ bool ] ]
| HANDLER | update_user_info
)
or define pieces separately, then assemble your routing map:
.. code-block:: python
DefaultHeaders = HEADERS | Headers
DefaultHandler = HANDLER | default_handler
DefaultEndpoint = ( GET / DefaultHeaders
| DefaultHandler )
routes = Routes() | DefaultEndpoint
Use nesting under common prefix
.. code-block:: python
routes = (routes / 'users' / ('user_id', User)) (
POST / 'edit'
| HEADERS | Headers
| RETURNS | JSON [ User ]
| HANDLER | update_user_info
)
Find out more from `Official Documentation `_.