Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

309
Vistas
¿Cómo autorizar enlaces de interfaz de usuario de swagger usando python?

Tengo la siguiente configuración para swagger en la aplicación del matraz.

 def configure_swagger(app): """ Swagger Configuration for APP """ app.config["SWAGGER"] = {"title": "Swagger-UI", "uiversion": 3} swagger_config = { "headers": [], "specs": [ { "endpoint": "apispec_1", "route": "/apispec_1.json", "rule_filter": lambda rule: True, # all in "model_filter": lambda tag: True, # all in } ], "static_url_path": "/flasgger_static", "swagger_ui": True, "specs_route": "/swagger/", } SWAGGER_TEMPLATE = { "securityDefinitions": {"APIKeyHeader": {"type": "apiKey", "name": "Authorization", "in": "header"}}} swagger = Swagger(app,config=swagger_config, template=SWAGGER_TEMPLATE)

Además, tengo una configuración de configure_hook(app) que antes de enviar a cualquier API realiza una validación de token .

 def configure_hook(app): """ Configure before request hook """ @app.before_request def before_request(): header = request.headers.get('Authorization') token = header.split(" ")[-1] TokenValidation(token).validate_token() return None

En la configuración de la aplicación setup.py , agregué ambas configuraciones si SSO está habilitado.

 def setup_app(app, config=None): if os.getenv('SSO') == "ENABLE": configure_swagger(app) configure_hook(app) return app

En mi chequeo de salud, en el punto final /healtz . Necesito que la interfaz de usuario de Swagger se autorice automáticamente con el token. La función de punto final se da a continuación.

 @api.route("/healtz") @swag_from("Swagger/healtz_new.yml") def healtz(): return_dict = {"App Version": "1.0.0", "Status": "Healthy"} return return_dict

El archivo de healtz.yml :

 summary: "Health Check" description: "Give the info in json" consumes: - "application/json" produces: - "application/json" responses: 405: description: "Invalid input" # use the same name as above security: - APIKeyHeader: [ 'Authorization' ]

Pero cada vez que intento cargar la interfaz de usuario de Swagger llamando a http://0.0.0.0:8086/swagger recibo un error no autorizado, lo mismo cuando llamo a http://0.0.0.0:8086/healtz .

Idealmente, quiero que todos los puntos finales en la interfaz de usuario de Swagger se autoricen mediante programación usando el token pasado en los encabezados. Revisé la documentación e intenté agregar los tokens de portador, pero no funciona.

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda