No project description provided
Project description
A Sanic extension that generates APIs from python function and classes.
You can find out more here:
http://sanic-transmute.readthedocs.io/en/latest/
What is sanic-transmute ?
A transmute framework for sanic. This framework provides:
declarative generation of http handler interfaces by parsing function annotations
validation and serialization to and from a variety of content types (e.g. json or yaml).
validation and serialization to and from native python objects, using schematics.
autodocumentation of all handlers generated this way, via swagger.
Quick Start
A simple example.
from sanic import Sanic, Blueprint
from sanic.response import json
from sanic_transmute import describe, add_route, add_swagger, APIException
from sanic.exceptions import ServerError
from schematics.models import Model
from schematics.types import IntType
class User(Model):
points = IntType()
app = Sanic()
bp = Blueprint("test_blueprints", url_prefix="/blueprint")
@describe(paths="/api/v1/user/{user}/", methods="GET")
async def test_transmute(request, user: str, env: str=None, group: [str]=None):
return {
"user": user,
"env": env,
"group": group,
}
@describe(paths="/killme")
async def handle_exception(request) -> User:
raise ServerError("Something bad happened", status_code=500)
@describe(paths="/api/v1/user/missing")
async def handle_api_exception(request) -> User:
raise APIException("Something bad happened", code=404)
@describe(paths="/multiply")
async def get_blueprint_params(request, left: int, right: int) -> str:
res = left * right
return "{left}*{right}={res}".format(left=left, right=right, res=res)
if __name__ == "__main__":
add_route(app, test_transmute)
add_route(app, handle_exception)
add_route(app, handle_api_exception)
# register blueprints
add_route(bp, get_blueprint_params)
app.blueprint(bp)
# add swagger
add_swagger(app, "/api/v1/swagger.json", "/api/v1/")
app.run(host="0.0.0.0", port=8000)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sanic-transmute-0.1.2.tar.gz
(5.8 kB
view hashes)
Built Distribution
Close
Hashes for sanic_transmute-0.1.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff7850980847c346450f2f23881360bc6118257418aa91e6e325bf9e8a8ae218 |
|
MD5 | 5d40bb724ef5eae9fbc264308b5c372e |
|
BLAKE2b-256 | 003818f82a89ec52531ffbd6e18595b66c08f948845f9bd8309276475773c6de |