WebAPI使用Swagger生成接口文档

时间:2023-03-08 20:22:08
WebAPI使用Swagger生成接口文档

开发工具:VS2017 版本15.7.1

新建项目,选择空模板,下面只勾选WebAPI

WebAPI使用Swagger生成接口文档

配置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 并安装

 WebAPI使用Swagger生成接口文档

修改 SwaggerConfig.cs

接口文档是根据项目的xml结构文件生成的,首先要开启该功能

WebAPI使用Swagger生成接口文档

在配置SwaggerConfig.cs 中,设置对应的xml路径。如果有多个,则依次配置(比如有多个模型类库)。

WebAPI使用Swagger生成接口文档

开启验证,这里是简单的请求头模式

WebAPI使用Swagger生成接口文档

WebAPI使用Swagger生成接口文档

写一个测试接口,注意使用 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; }
    }

来看下最后的效果

WebAPI使用Swagger生成接口文档