• IT轮子系列(三)——如何显示方法名——Swagger的使用(三)


    前言

    在上一篇文章IT轮子系列(三)——如何给返回类型添加注释——Swagger的使用(二) 介绍如何使用swashbuckle的时候忽略了一个问题,就是默认创建的API项目在生成文档的时候是没有显示方法名,只显示了控制器的名字。如下图:

    User 控制器代码如下:

     1     public class UserController : BaseController
     2     {
     3         /// <summary>
     4         /// 获取用户信息
     5         /// </summary>
     6         /// <param name="model">获取用户信息模型</param>
     7         /// <returns></returns>
     8         [HttpPost]
     9         //添加方法修饰属性返回类型说明
    10         [SwaggerResponse(HttpStatusCode.OK, Type = typeof(ResultInfo<UserInfo>))]
    11         public HttpResponseMessage GetUserInfo([FromBody]GetUserInfoModel model)
    12         {
    13             ResultInfo<UserInfo> result = new ResultInfo<UserInfo>();
    14             try
    15             {
    16                 UserInfo user = new UserInfo();
    17                 user.Name = "Peter";
    18                 user.Phone = model.phone;
    19                 user.Email = "itwheels@163.com";
    20                 result.Data = user;
    21             }
    22             catch (Exception ex)
    23             {
    24                 result.Status = "FAIL";
    25                 result.Msg = ex.Message;
    26             }         
    27             
    28             return toJson(result);
    29         }
    30     }
    View Code

    按照代码,我们想要的显示方法名GetUserInfo。今天在写另一篇API相关文章,才发现这个问题。经过一份琢磨,发现swashbuckle 是根据我们在路由配置WebApiConfig中的模版来生成的。如,默认的配置代码为:

    1  config.Routes.MapHttpRoute(
    2                 name: "DefaultApi",
    3                 routeTemplate: "api/{controller}/{id}",
    4                 defaults: new { id = RouteParameter.Optional }
    5             );

    所以,按照这个配置生成的文档只显示了控制器的名字,却没有方法名。

    解决方案

    按照上面分析的思路,要在swagger文档中显示接口的方法名,只需修改路由模版就可以了。修改后的代码如下:

    1             config.Routes.MapHttpRoute(
    2                 name: "DefaultApi",
    3                 routeTemplate: "api/{controller}/{action}"
    4             );

    这样修改后,我们就可以在swagger文档中看到方法名拉。如下图:

  • 相关阅读:
    rails consol reload!
    手shi目录
    rails 3 search plugin
    nginx+wordpress配置教程
    管局介绍
    jquery 全选 反选
    rails跳过验证
    关于partial的使用
    你需要一个轻量级的文本编辑器吗?notepad++很适合我!你也用用看?
    ssh技巧
  • 原文地址:https://www.cnblogs.com/liangxiarong/p/7782161.html
Copyright © 2020-2023  润新知