IT轮子系列(三)——如何给返回类型添加注释——Swagger的使用(二)

前言

一般对外提供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     }
View Code

当我们给方法添加SwaggerResponse属性修饰的时候,在生成的文档中就可以看到返回类型拉。

 

posted @ 2017-11-01 20:57  早起Abc  阅读(15646)  评论(14编辑  收藏  举报