zoukankan      html  css  js  c++  java
  • Swagger注解 传参

    转载自https://my.oschina.net/lyaohe/blog/1503254

    代码例子:

        @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")
        @ApiImplicitParam(paramType="path", name = "id", value = "用户ID", required = true, dataType = "Long")
        @RequestMapping(value="/{id}", method=RequestMethod.GET)
        public User getUser(@PathVariable Long id) {
            return users.get(id);
        }
    

    网上好多例子都没有paramType这个参数,导致获取不到URL的参数,特意记录一下

    详细的注解说明

    • @Api:用在类上,说明该类的作用
    • @ApiOperation:用在方法上,说明方法的作用
    • @ApiImplicitParams:用在方法上包含一组参数说明
    • @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
      • paramType:参数放在哪个地方
        • header-->请求参数的获取:@RequestHeader
        • query-->请求参数的获取:@RequestParam
        • path(用于restful接口)-->请求参数的获取:@PathVariable
        • body(不常用)
        • form(不常用)
      • name:参数名
      • dataType:参数类型
      • required:参数是否必须传
      • value:参数的意思
      • defaultValue:参数的默认值
    • @ApiResponses:用于表示一组响应
    • @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
      • code:数字,例如400
      • message:信息,例如"请求参数没填好"
      • response:抛出异常的类
    • @ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
      • @ApiModelProperty:描述一个model的属性
    @ApiOperation(value="添加博客", notes="新增博客")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "mess", value = "博客内容",
                        required = true, paramType = "query", dataType = "String")
        })
        @RequestMapping(value = "/addblog", method = RequestMethod.POST)
        public Result addBlog(@RequestBody Blog blog, @RequestParam(name = "mess", required = true)String mess, HttpServletRequest request){
            Integer userId = (Integer) request.getSession().getAttribute("userId");
            userId = 12;
            Integer effecNum = blogService.addBlog(blog, mess, userId);
            if(effecNum > 0)
                return new Result(ResultEnums.SUCCESS);
            return new Result(ResultEnums.PARAM_IS_INVAILD);
        }
    

      

  • 相关阅读:
    让一个 csproj 项目指定多个开发框架
    推荐近乎免费的调试神器——OzCode
    再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录
    .NET Core 和 .NET Framework 中的 MEF2
    将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件
    .NET 中的轻量级线程安全
    卡诺模型(KANO Model)
    C#/.NET 匿名函数会捕获变量,并延长对象的生命周期
    迫不及待地体验了一把 C#8.0 中的可空引用类型(Nullable Reference)
    异步任务中的重新进入(Reentrancy)
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/9182833.html
Copyright © 2011-2022 走看看