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

时间:2018-06-22 17:52:08

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您已经拥有OpenAPI / Swagger 3.0 yaml文件,则只需要UI,并且有一些选择: