ASP.NET Web Api 2 接口API文档美化之Swagger
但本人在查阅大量资料并进行编码测试后,发现大部分的swagger实例并不能有效运行。例如如下两个网址: 和 。经过本人的一番折腾,,最终发现,原来是由版本的差异导致的(以上两个例子在4.2.0版本下运行成功,读者可自行测试)。哎,要是这些作者能够标出插件包的版本,真能省下很多功夫。
目前Swashbuckle的最新稳定版本为5.2.1版。这个版本的编码方式与4.2.0版本有一定差异,本文也以5.2.1版本为例进行说明。
注:本文使用OWIN来自寄宿(self-host) web api,不清楚的读者可参考:。
1、新建一个控制台应用程序OwinConsoleApp。Nuget分别添加Swashbuckle(5.2.1版本)和Microsoft.AspNet.WebApi.OwinSelfHost。添加Swashbuckle时,会在项目中自动添加App_Start文件夹和一个文件名为“SwaggerConfig”的文件。
2、新建一个StudentController文件, 代码如下:
using System; using System.Collections.Generic; using System.Web.Http; using System.Web.Http.Description; namespace OwinConsoleApp { /// <summary> /// 学生信息 /// </summary> public class StudentController : ApiController { /// <summary> /// 得到所有的学生信息 /// </summary> /// <returns></returns> public IEnumerable<string> Get() { return new List<string>() { "student A", "student B" }; } /// <summary> /// 根据学生编号得到学生信息 /// </summary> /// <param name="Id">学生编号</param> /// <returns></returns> public string Get(int Id) { return "学号:" + Id; } /// <summary> /// 添加学生 /// </summary> /// <param name="studentModel">学生实体</param> /// <remarks>添加一个新的学生</remarks> /// <response code="400">Bad request </response> /// <response code="500">Internal Server Error</response> public void Post(String studentModel) { } /// <summary> /// 修改学生信息 /// </summary> /// <param name="Id">学生编号</param> /// <param name="studentModel">学生实体</param> [ResponseType(typeof(string))] [ActionName("UpdateStudentById")] public void Put(int Id, string studentModel) { } /// <summary> /// 删除学生信息 /// </summary> /// <param name="Id">学生编号</param> public void Delete(int Id) { } } }3、修改SwaggerConfig文件如下:
6、右键项目属性,在属性的“生成”中设置输出文档:
注:这里的XML文件路径和文件名应与SwaggerConfig文件中的配置保持一致。
7、管理员身份运行程序。在浏览器中输入如下地址::9000/swagger,显示如下页面:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69206.html