webapi 集成swagger

参考资料:Stack Overflowhtml

我本身写的demo:SwaggerDemoApigit

在已有的webapi项目或者建立webapi项目中,打开nuget管理器web

搜索:swaggerapi

安装截图中的插件到你的webapi项目中 ,安装完成后,项目根目录下也可能会出现SwaggerNet.cs文件,把这个文件删除掉便可mvc

 

 这个插件是自动安装的,依赖于Swagger.Net.UIide

安装完成以后,发现项目根目录--App_Start目录下回产生两个文件spa

打开SwaggerNet.cs文件,把我截图中的代码注释掉,否则会报错,报错信息:程序集“Swagger.Net, Version=0.5.1.0, Culture=neutral, PublicKeyToken=null”中的类型“Swagger.Net.XmlCommentDocumentationProvider”的方法“GetDocumentation”没有实现。.net

 把图中代码注释掉,就没有报错了。插件

运行起来后,在地址栏后加上/swagger,就能够自动跳转到对应的页面了。code

 

集成到项目中报错:Not supported by Swagger 2.0: Multiple operations with path 'api/Blob' and method 'POST'. See the config setting - \"ResolveConflictingActions\" for a potential workaround

参考资料:Not supported by Swagger 2.0: Multiple operations with path

                 webapi 配置swagger出现问题:not supported by swagger 2.0

在代码

GlobalConfiguration.Configuration 
                .EnableSwagger(c =>
                    { ...

里面加上一句:

c.ResolveConflictingActions(apiDescriptions => apiDescriptions.ToList().First());

或者

c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());

哪一个不报错就用哪一个,本身看状况。加上以后就不报这个错误了,就成功的运行出来了。

 

2019.05.24 补充:

如何生成注释文档?参考资料:代码注释生成