如果路由中有任何路径参数,我们如何在 falcon 中间件中获取路径参数?
How can we get path params in falcon middleware, if any path param in the route?
我的路线如下:
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 **/
您可以从req
获取请求对象的所有属性。例如,要获取资源的路径:
class MyMiddleware(object):
def process_request(self, req, resp):
path = req.path
# process your path here
查看 docummentation 了解有关请求的更多信息。
如果你想直接获取app_id,只需要extend带参数的方法,falcon就可以了。
class MyMiddleware(object):
def process_request(self, req, resp, params):
app_id = params["app_id"]
基础中间件中有process_resource(self, req, resp, resource, params) 方法。您可以覆盖它。 params 是一个类似 dict 的对象,其中包含从 uri 模板字段中提取的参数。
我的路线如下:
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 **/
您可以从req
获取请求对象的所有属性。例如,要获取资源的路径:
class MyMiddleware(object):
def process_request(self, req, resp):
path = req.path
# process your path here
查看 docummentation 了解有关请求的更多信息。
如果你想直接获取app_id,只需要extend带参数的方法,falcon就可以了。
class MyMiddleware(object):
def process_request(self, req, resp, params):
app_id = params["app_id"]
基础中间件中有process_resource(self, req, resp, resource, params) 方法。您可以覆盖它。 params 是一个类似 dict 的对象,其中包含从 uri 模板字段中提取的参数。