前言
一般對外提供API,都會統一一個返回類型,比如所有的接口都統一返回HttpResponseMessage。這樣當我們在方法上添加///注釋時,是無法清楚的知道都返回字段都又那些以及它們的數據類型是什么。如下圖所生成的文檔所示:
、
從圖中,我們看到文檔只有輸入參數的說明,而對於返回的類型是什么,有那些字段都是不清楚的。這對於調用第三方調用是很不友好的。
在實際項目中,偶然發現,Swashbuckle 提供一個返回類型屬性,很好的解決了這個問題。
如代碼所示:
1 /// </summary> 2 public class UserController : BaseController 3 { 4 /// <summary> 5 /// 獲取用戶信息 6 /// </summary> 7 /// <param name="model">獲取用戶信息模型</param> 8 /// <returns></returns> 9 [HttpPost] 10 //添加方法修飾屬性返回類型說明 11 [SwaggerResponse(HttpStatusCode.OK, Type = typeof(ResultInfo<UserInfo>))] 12 public HttpResponseMessage GetUserInfo([FromBody]GetUserInfoModel model) 13 { 14 ResultInfo<UserInfo> result = new ResultInfo<UserInfo>(); 15 try 16 { 17 UserInfo user = new UserInfo(); 18 user.Name = "Peter"; 19 user.Phone = model.phone; 20 user.Email = "itwheels@163.com"; 21 result.Data = user; 22 } 23 catch (Exception ex) 24 { 25 result.Status = "FAIL"; 26 result.Msg = ex.Message; 27 } 28 29 return toJson(result); 30 } 31 }
當我們給方法添加SwaggerResponse屬性修飾的時候,在生成的文檔中就可以看到返回類型拉。

