使用horseman为WSGI应用提供的路由工具。
项目描述
为
此软件包引入了一个“Routes”组件,允许在一或多个HTTP方法上注册端点。可以通过URL或名称查找路由。
示例
以下是一个简单的API示例,处理对‘/’的GET请求并返回JSON响应。
import logging
from bjoern import run
from horseman.meta import SentryNode, Overhead, APIView
from horseman.response import Response
from roughrider.routing import Routes
class Request(Overhead):
data = None
def __init__(self, environ):
self.environ = environ
def extract(self):
self.data = 'somedata'
class RootNode(SentryNode):
def __init__(self):
self.routes = Routes()
def resolve(self, path: str, environ: dict):
route = self.routes.match_method(path, environ['REQUEST_METHOD'])
if route is not None:
request = Request(environ)
return route.endpoint(request, **route.params)
def handle_exception(self, exc_info, environ):
logging.error(exc_info)
app = RootNode()
@app.routes.register('/')
class View(APIView):
def GET(self, overhead):
return Response.to_json(200, {"Result": "OK"})
run(
host="0.0.0.0",
port=8080,
reuse_port=True,
wsgi_app=app,
)
变更记录
0.2.1 (2022-03-15)
修复了在注册两个同名路由时存在的错误。
0.2 (2021-10-09)
代码结构进行了调整,以提高可读性。
0.1 (2021-10-08)
首次发布
项目详情
关闭
roughrider.routing-0.2.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | b8585518a40691e5ec03fd6745dbde66aec6c0d50296e73e5bc40858f7a8f5aa |
|
MD5 | bca9523807726471e8a14471b4114187 |
|
BLAKE2b-256 | 2f33fbbb9b0644a07563ba40c98f2e479169fdcabb34c53200d162cde2ce99bc |