Asp.Net WebApi swagger使用教程
swagger简介
别名:丝袜哥
功能:用于生产api文档
swagger安装
Nuget搜索swagger,然后安装Swashbuckle
swagger使用
生成api的xml文档
webapi项目右键——属性——生产——输出
汉化Swagger
新建一个js,目录/Scripts/Swagger/swagger_lang.js,属性设置为[嵌入的资源]
设置Swagger
修改/App_Start/SwaggerConfig.cs,注意xml地
using System.Web.Http; using WebActivatorEx; using cms.WebApi; using Swashbuckle.Application; [assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")] namespace cms.WebApi { public class SwaggerConfig { public static void Register() { var thisAssembly = typeof(SwaggerConfig).Assembly; GlobalConfiguration.Configuration .EnableSwagger(c => { c.SingleApiVersion("v1", "cms.WebApi"); c.IncludeXmlComments(string.Format("{0}/App_Data/cms.WebApi.XML", System.AppDomain.CurrentDomain.BaseDirectory));//设置xml地址 }) .EnableSwaggerUi(c => { c.DocumentTitle("My webapi"); c.InjectJavaScript(thisAssembly, "cms.WebApi.Scripts.Swagger.swagger_lang.js");//汉化js }); } } }
控制器
// GET api/values /// <summary> /// get请求1 /// </summary> /// <returns></returns> public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/values/5 /// <summary> /// get请求2 /// </summary> /// <param name="id"></param> /// <returns></returns> public string Get(int id) { return "value"; }
运行测试
访问地址:http://localhost:30022/swagger/
注意:刚开始我的webapi和mvc在一个项目中,导致汉化失败,汉化js路径找不到。然后把webapi单独一个项目后正常了,坑啊!!!
end