Как мы можем получить параметры пути в промежуточном программном обеспечении сокола, если есть какой-либо параметр пути в маршруте?

Мои маршруты следующие:

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.

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

Другие вопросы по тегам