在 Flask 上显示 Swagger UI,无需任何连接

Err*_*rse 2 python flask python-3.x swagger-ui aws-api-gateway

有人知道我可以.yml在 Flask 上提供 swagger UI 文件而不创建或连接 API 的方法吗?我只是想在网站上显示 swagger 文件,以便人们可以看到如何使用 API,但我不想创建 API 或连接任何东西,因为 API 是私有的,所以无论如何都不能调用它。

该API来自AWS API Gateway,所以我无法将任何东西与fla​​sk连接起来。

我研究了connexion,但我需要连接我的 API 方法才能使用它,但这是行不通的。

我可以使用 openapi 编辑器将 api 规范转换为 html,然后提供 html,但我想尝试使用 swagger ui 提供的漂亮布局。

Olu*_*ule 6

Swagger 在项目dist文件夹中有一个已发布的示例。

浏览器就绪的 JavaScript 包可unpkg或直接通过访问cloudflare CDN获得,并且可以直接从那里提供服务。

index.html在您的用例中,您可以编写与文件夹中的文件类似的模板文件,dist而无需为您的 Flask 项目的 Swagger UI 包设置额外的构建过程。

您的模板将如下所示,您可以将 的值替换为包含 API 定义的文件的urlURL :yaml

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js"></script>
    <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.22.1/swagger-ui-standalone-preset.js"></script> -->
    <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
    <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.22.1/swagger-ui-bundle.js"></script> -->
    <link rel="stylesheet" href="//unpkg.com/swagger-ui-dist@3/swagger-ui.css" />
    <!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.22.1/swagger-ui.css" /> -->
    <title>Swagger</title>
</head>
<body>
    <div id="swagger-ui"></div>
    <script>
        window.onload = function() {
          SwaggerUIBundle({
            url: "https://petstore.swagger.io/v2/swagger.yaml",
            dom_id: '#swagger-ui',
            presets: [
              SwaggerUIBundle.presets.apis,
              SwaggerUIStandalonePreset
            ],
            layout: "StandaloneLayout"
          })
        }
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)