未提供项目描述
项目描述
构建 |
|
---|---|
文档 |
|
包 |
使用Swagger UI轻松记录您的Sanic API,包括参数验证和模型序列化。
更多详情请在此处查看
http://sanic-transmute.readthedocs.io/en/latest/
什么是sanic-transmute ?
通过解析函数注释声明性生成http处理器接口
到和从多种内容类型(例如json或yaml)的验证和序列化。
使用attrs和schematics对和从原生Python对象的验证和序列化。
通过swagger自动记录所有生成的处理器。
快速开始
概述
在此处查找示例
带有schematics模型的简单示例。
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):
"""
API Description: Transmute Get. This will show in the swagger page (localhost:8000/api/v1/).
"""
return {
"user": user,
"env": env,
"group": group,
}
@describe(paths="/killme")
async def handle_exception(request) -> User:
"""
API Description: Handle exception. This will show in the swagger page (localhost:8000/api/v1/).
"""
raise ServerError("Something bad happened", status_code=500)
@describe(paths="/api/v1/user/missing")
async def handle_api_exception(request) -> User:
"""
API Description: Handle APIException. This will show in the swagger page (localhost:8000/api/v1/).
"""
raise APIException("Something bad happened", code=404)
@describe(paths="/multiply")
async def get_blueprint_params(request, left: int, right: int) -> str:
"""
API Description: Multiply, left * right. This will show in the swagger page (localhost:8000/api/v1/).
"""
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)
带有attrs模型的简单示例。
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
import attr
@attr.s
class User:
points = attr.ib(type=int)
app = Sanic()
bp = Blueprint("test_blueprints", url_prefix="/blueprint")
@describe(paths="/api/v1/user/{user}/", methods="GET")
async def test_transmute_get(request, user: str, env: str=None, group: [str]=None):
"""
API Description: Transmute Get. This will show in the swagger page (localhost:8000/api/v1/).
"""
return {
"user": user,
"env": env,
"group": group,
}
@describe(paths="/api/v1/user/", methods="POST")
async def test_transmute_post(request, user: User) -> User:
"""
API Description: Transmute Post. This will show in the swagger page (localhost:8000/api/v1/).
"""
return user
@describe(paths="/killme")
async def handle_exception(request) -> User:
"""
API Description: Handle exception. This will show in the swagger page (localhost:8000/api/v1/).
"""
raise ServerError("Something bad happened", status_code=500)
@describe(paths="/api/v1/user/missing")
async def handle_api_exception(request) -> User:
"""
API Description: Handle APIException. This will show in the swagger page (localhost:8000/api/v1/).
"""
raise APIException("Something bad happened", code=404)
@describe(paths="/multiply")
async def get_blueprint_params(request, left: int, right: int) -> str:
"""
API Description: Multiply, left * right. This will show in the swagger page (localhost:8000/api/v1/).
"""
res = left * right
return "{left}*{right}={res}".format(left=left, right=right, res=res)
if __name__ == "__main__":
add_route(app, test_transmute_get)
add_route(app, test_transmute_post)
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)
开发
构建。
./uranium
运行单元测试。
./uranium test
项目详情
关闭
sanic-transmute-0.1.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 72dfe4a893177a0aa30d8693f18b184cad6e314ad306a86ce62cebf2fcaedd0d |
|
MD5 | 477b62be8f434a93fedf69d08ad2736d |
|
BLAKE2b-256 | 4525be6bde5a4cfee152ae678c062cb74061e0f7a725cc7990d9a27811ae8230 |
关闭
sanic_transmute-0.1.3-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 35796f15153da6fbd31bf479b5faeb11c01c7a661ae94e10c8e7d63e336faa46 |
|
MD5 | 9da20cc6f0718f55427fb405a03df6fe |
|
BLAKE2b-256 | 7f0f18327c9bb60f8630267bf5062dc8c3e21031227502a97d009c4fbd0536b0 |