1

我正在使用 python 烧瓶应用程序和使用 flasgger 的 API 文档。当我在本地运行我的烧瓶应用程序时,http://localhost:8086/swagger/我得到了正确的招摇用户界面。

现在我们已经使用Nginx前端服务部署了我们的应用程序。当我们调用已部署的链接时http://localhost:8086/api/core/swagger/,我们会看到一个空白的白色页面,页面Powered by Flasgger 0.9.5右上方。

在 Web 开发人员工具控制台中,我收到此错误。

Uncaught ReferenceError: SwaggerUIBundle is not defined
    at window.onload ((index):72:16)

我知道这可能是 flasgger 尝试加载 CSS 文件或其他资源的一些问题,并且无法正确呈现。因为某条路

在我配置 swagger 的过程中,我有以下配置功能。

def configure_swagger(app):
    

    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/",
        'openapi': '3.0.3'
    }
 
    swagger_template = {
        'components': {
            'securitySchemes': {
                'bearerAuth': {
                    'type': 'http',
                    'scheme': 'bearer',
                    'bearerFormat': 'JWT'
                }
            },
            'security': [{
                'bearerAuth': []
            }]
        }
    }
    swagger = Swagger(app, config=swagger_config, template=swagger_template)

并且我在其中的所有其他端点api.py都遵循此架构。

@api.route("/hello")
@swag_from("Swagger/hello.yml")
# @log_writer
def hello():
    projects = {"id": 1, "title": "Hello"}
    return projects["title"]


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

healtz.yaml我的文件样本:

summary: "Upload"
description: "Give the info in json"
consumes:
- "application/json"
produces:
- "application/json"
responses:
  405:
    description: "Invalid input"
security:
- bearerAuth: []

此 YAML 文件位于项目中,目录名为Swagger.

我已经浏览了以下答案,但没有得到答案。

对于部署,我们使用我们拥有容器的 EKS 服务。

为什么会出现这个问题?有人可以帮我写代码吗?

4

0 回答 0