7

我的路线如下:

app.add_route('/v1/my_route', MyResource())
app.add_route('/v1/my_route/{app_id}', MyResource())
app.add_route('/v1/my_route2/any_route', AnyRouteResource())
app.add_route('/v1/my_route2/any_route/{app_id}', AnyRouteResource())

和中间件类似于

class MyMiddleware(object):
    def process_request(self, req, resp):
        /** Here i want to get <app_id> value if it is passed **/
4

2 回答 2

4

您可以从中获取请求对象的每个属性req。例如,要获取资源的路径:

class MyMiddleware(object):
    def process_request(self, req, resp):
        path = req.path

        # process your path here

查看文档以获取有关请求的更多信息。

如果您想直接获取 app_id,只需使用 params扩展方法,falcon 就可以完成这项工作。

class MyMiddleware(object):
        def process_request(self, req, resp, params):
            app_id = params["app_id"]
于 2018-09-22T17:43:20.760 回答
2

基础中间件中有 process_resource(self, req, resp, resource, params) 方法。您可以覆盖它。params 是一个类似于 dict 的对象,其参数是从 uri 模板字段中提取的。

https://falcon.readthedocs.io/en/stable/api/middleware.html

于 2018-09-22T17:57:47.740 回答