首先,创建一个空的WebApi项目
之后,创建Controller,然后继承ApiController
之后呢,我们需要写个方法,当然,都是有返回值的,不能用return View()啥的(毕竟是返回数据用的接口)
然后,我们需要引用NuGet里头的 Swashbuckle、swagger.Net.UI
注:引用完 Swashbuckle,会在App_Start里头生成一个 SwaggerConfig(用来配置Swagger参数的,强烈建议使用稳定版本的,我用了一下最新预发行版,结果没生成这个文件,之后再次引用下5.53的稳定版,丫丫的,也可能是这个文件需要后面才引用--在引用swagger.Net.UI之后)
配置参数:
using System.Web.Http; using WebActivatorEx; using wp3; using Swashbuckle.Application; [assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")] namespace wp3 { /// <summary> /// Swagger配置 /// </summary> public class SwaggerConfig { //加了这个 private static string GetXmlCommentsPath() { return string.Format(@"{0}\bin\wp3.XML", System.AppDomain.CurrentDomain.BaseDirectory); } public static void Register() { var thisAssembly = typeof(SwaggerConfig).Assembly; GlobalConfiguration.Configuration .EnableSwagger(c => { c.SingleApiVersion("v1", "wp3"); c.IncludeXmlComments(GetXmlCommentsPath());//加了这个 }) .EnableSwaggerUi(c => { }); } } }
注意:上面的GetXmlCommentsPath 静态方法,是读取你这个项目bin目录下生成的 Xml(这个是你在Swagger里头注释的内容),
需要 右击你的项目->属性->生成,,将XML文档文件 勾选起来,生成目录可以自己选择,当然 楼上的 SwaggerConfiger中的GetXmlCommentsPath 的路径也需要修改了
之后,去App_Start中,将楼上的两行注释掉(没有的话就算了,据说是因为:估计是nuget包中的代码没有更新导致这个异常出现)
然后,运行没看到,我就在代码头部加上个 Route("Default/Login") 路由地址
之后运行了,也显示出来了(包括没加这个路由的方法也显示出来了,个人猜测,应该是有大的改动之类的,才会更新--或者我没单一生成项目吧,外加清理解决方案)
最后呢?我们就可以运行期这个项目看看了
地址::5941/swagger/Ui/index (你的local地址 + /swagger/Ui/index )
结果如图:
后话,出现个状况,初始自带的
还存在,我后续看看怎么会出来的
感谢:
使用Swagger制作WebApi的接口