将 Swagger UI 添加到自定义 .NET Web API



我想将 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

最新更新