跳转到主要内容

使用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 (1.1 MB 查看散列)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面