Как мы можем получить параметры пути в промежуточном программном обеспечении сокола, если есть какой-либо параметр пути в маршруте?
Мои маршруты следующие:
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())
и Middleware это что-то похожее на
class MyMiddleware(object):
def process_request(self, req, resp):
/** Here i want to get <app_id> value if it is passed **/
2 ответа
Вы можете получить каждый атрибут объекта запроса из req
, Например, чтобы получить путь к вашему ресурсу:
class MyMiddleware(object):
def process_request(self, req, resp):
path = req.path
# process your path here
Проверьте документацию для получения дополнительной информации о запросах.
Если вы хотите получить app_id напрямую, просто расширьте метод с помощью params, сокол сделает эту работу.
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.