开发工具:VS2017 版本15.7.1
新建项目,选择空模板,下面只勾选WebAPI
配置Web.config
<system.webServer> 节点改为
<system.webServer> <handlers> <remove name="OPTIONSVerbHandler" /> <remove name="TRACEVerbHandler" /> </handlers> <validation validateIntegratedModeConfiguration="false" /> <!-- 兼容IIS版本 --> <modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule" /> </modules> <!-- 正式环境,不需要配置跨域 --> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Authorization" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> </customHeaders> </httpProtocol> </system.webServer>
<runtime>节点中,删除已经去除的依赖包
加入Swagger。打开NuGet,找到 Swashbuckle 并安装
修改 SwaggerConfig.cs
接口文档是根据项目的xml结构文件生成的,首先要开启该功能
在配置SwaggerConfig.cs 中,设置对应的xml路径。如果有多个,则依次配置(比如有多个模型类库)。
开启验证,这里是简单的请求头模式
写一个测试接口,注意使用 ResponseType,才会显示响应的参数
public class TestController : ApiController { /// <summary> /// 测试接口 /// </summary> [Route("api/name")] [HttpGet] [ResponseType(typeof(MyResp))] public IHttpActionResult GetName([FromUri]MyReq req) { var resp = new MyResp(); resp.name = req.name; return Ok(resp); } } /// <summary> /// 测试请求 /// </summary> public class MyReq { /// <summary> /// 输入姓名 /// </summary> public string name { get; set; } } /// <summary> /// 测试响应 /// </summary> public class MyResp { /// <summary> /// 输出姓名 /// </summary> public string name { get; set; } }
来看下最后的效果