WebAPI使用Swagger生成接口文檔

開發工具:VS2017 版本15.7.1web

新建項目,選擇空模板,下面只勾選WebAPI

配置Web.config

 <system.webServer> 節點改成api

  <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; }
    }

 來看下最後的效果

 

相關文章
相關標籤/搜索