我想将 Swagger UI 集成到我的 C# .Net Web API 项目中。这与传统的 Web API 项目不同,在传统的 Web API 项目中,您可以安装 SwashBuckle 等工具,然后它会选取控制器类中定义的 HTTP 路由并创建 UI。
我有一个自定义实现,它为不同的路由生成OpenAPI/Swagger 3.0 yaml文件。
我在通用控制器文件中定义了一条路由,该文件接受一个变量 -
http://localhost:8000/myapp/swagger/{document_name}
其中document_name是一个变量。我的代码采用此变量并根据此值生成自定义文档。
http://localhost:8000/myapp/swagger/sedan
http://localhost:8000/myapp/swagger/suv
在上面的示例中,我的代码将为轿车和 SUV 返回不同的 Open API 规范。
截至目前,URL 仅以纯文本形式返回 Open API 3.0 YAML 规范。我希望能够做的是能够在 Swagger UI 中表示此文件,如下所示 -
http://petstore.swagger.io/
这可能吗?我可以为此使用虚张声势吗?我是否需要执行自定义实现来托管 Swagger UI?最好的方法是什么?
如果你已经有OpenAPI/Swagger 3.0 yaml文件,你只需要UI,你有几个选择:
-
将 UI 文件复制到服务器。
这将为您提供最大的灵活性,允许您使用配置参数
进行自定义 您只需要dist文件夹中的文件:
https://github.com/swagger-api/swagger-ui/tree/master/dist -
使用 petstore 或任何其他现有 UI 并将文件作为参数传递,如下所示:
http://petstore.swagger.io/?url=https://raw.githack.com/heldersepu/hs-scripts/master/swagger/swagger_aws.json