Connexion/Flask 应用程序:从请求中获取 base_path
Connexion/Flask application: get base_path from request
我有一个 connexion/flask/werkzeug 应用程序,我需要能够在请求期间获得“base_path”。例如:我的应用程序位于:http://0.0.0.0:8080/v1.0/ui/#/Pet,base_path 为:“http://0.0.0.0:8080/v1.0”。
我希望能够在请求者执行任何定义的操作(GET、POST、PUT 等)时获得 base_path。我一直无法找到获取基本路径的简单方法。通过 python 调试器,我可以看到 base_path 在堆栈的较高位置可用,但似乎对应用程序入口点不可用。
#!/usr/bin/env python3
import connexion
import datetime
import logging
from connexion import NoContent
PETS = {}
def get_pet(pet_id):
pet = PETS.get(pet_id)
# >>>--> I WANT TO GET THE BASE_PATH OF THE REQUEST HERE <--<<<
return pet or ('Not found', 404)
由于 nda 原因我无法详细说明,我有此应用程序的多个 openapi 规范,了解请求的 base_path 对我来说很重要(因为它们不同)。如果有人能帮我想出一种方法来获得每个请求的 base_path,我将不胜感激:)
谢谢!
从Flask
文档
中参考这个topic(传入请求数据)
和 dump
使用 before_request
钩子传入的 request
并提取正确的 request.base_url
用于您的情况:
from flask import .., request
@bp.before_request
def dump_incoming_request():
from pprint import pprint
pprint(request.__dict__.items())
使用connexion.request.base_url
。
https://connexion.readthedocs.io/en/latest/request.html#header-parameters 您可以访问处理程序中的 connexion.request
我有一个 connexion/flask/werkzeug 应用程序,我需要能够在请求期间获得“base_path”。例如:我的应用程序位于:http://0.0.0.0:8080/v1.0/ui/#/Pet,base_path 为:“http://0.0.0.0:8080/v1.0”。
我希望能够在请求者执行任何定义的操作(GET、POST、PUT 等)时获得 base_path。我一直无法找到获取基本路径的简单方法。通过 python 调试器,我可以看到 base_path 在堆栈的较高位置可用,但似乎对应用程序入口点不可用。
#!/usr/bin/env python3
import connexion
import datetime
import logging
from connexion import NoContent
PETS = {}
def get_pet(pet_id):
pet = PETS.get(pet_id)
# >>>--> I WANT TO GET THE BASE_PATH OF THE REQUEST HERE <--<<<
return pet or ('Not found', 404)
由于 nda 原因我无法详细说明,我有此应用程序的多个 openapi 规范,了解请求的 base_path 对我来说很重要(因为它们不同)。如果有人能帮我想出一种方法来获得每个请求的 base_path,我将不胜感激:)
谢谢!
从Flask
文档
和 dump
使用 before_request
钩子传入的 request
并提取正确的 request.base_url
用于您的情况:
from flask import .., request
@bp.before_request
def dump_incoming_request():
from pprint import pprint
pprint(request.__dict__.items())
使用connexion.request.base_url
。
https://connexion.readthedocs.io/en/latest/request.html#header-parameters 您可以访问处理程序中的 connexion.request