【问题标题】:Add Swagger UI to a custom .NET Web API将 Swagger UI 添加到自定义 .NET Web API
【发布时间】:2018-06-22 17:52:07
【问题描述】:

我想将 Swagger UI 集成到我的 C# .Net 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/

这可能吗?我可以为此使用 Swashbuckle 吗?我是否需要进行自定义实现来托管 Swagger UI?最好的方法是什么?

【问题讨论】:

    标签: asp.net .net asp.net-web-api swagger swashbuckle


    【解决方案1】:

    如果您已经拥有 OpenAPI/Swagger 3.0 yaml 文件,那么您只需要 UI 并且您有几个选项:

    【讨论】:

    • 感谢您的回复。我想在 .NET OWIN 项目中托管 UI。我不确定如何通过 OWIN 提供 Swagger UI dist 文件夹?有什么想法吗?
    • @sandunes90 听起来像是 StackOverflow 的另一个问题。 ...如何使用 OWIN 提供静态内容
    • 我确实把它贴上了 - stackoverflow.com/questions/51204484/…
    • 在此之后,我能够在 OWIN 中使用“UseStaticFiles”选项。有没有更好的方法来代替文件,Swagger“Index.html”将接受 YAML/JSON 定义文本?而不是使用定义文件的路径?
    猜你喜欢
    • 1970-01-01
    • 2018-06-17
    • 2021-11-27
    • 2018-10-04
    • 2018-05-13
    • 2020-03-07
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多