swagger2.9+参数类型为String+使用RequestBody注解的传参问题

Controller中某个接口如下:

    @RequestMapping(value = "/token/refresh", method = RequestMethod.POST)
    @ApiOperation(value = "刷新token", notes = "通过refreshToken获取accessToken")
    @ApiResponses({
            @ApiResponse(code = 200, message = "If successful, this method return JwtAccessTokenVO.", response = JwtAccessTokenVO.class),
            @ApiResponse(code = 400, message = "If bad request."),
            @ApiResponse(code = 500, message = "If internal server error."),
            @ApiResponse(code = 503, message = "If service unavailable.")
    })
    public Response getAccessToken(
            @RequestBody
                    String refreshToken) {
        JwtAccessTokenVO jwtAccessTokenVO = authService.getAccessToken(refreshToken);
        return new Response(HttpStatus.OK.value(), jwtAccessTokenVO);
    }

在该接口中我们使用了@RequestBody注解用于String类型的参数,我们的swagger版本号为2.9.在swagger界面中查看该接口,如下:

swagger2.9+参数类型为String+使用RequestBody注解的传参问题_第1张图片

我们发现示例输入为“string”。

问题:当我们将正确的token输入时发现接口调用返回失败:

swagger2.9+参数类型为String+使用RequestBody注解的传参问题_第2张图片

swagger2.9+参数类型为String+使用RequestBody注解的传参问题_第3张图片

经过多次反复检查和测试发现,将双引号去掉时才可调用成功:

 

 

 

swagger2.9+参数类型为String+使用RequestBody注解的传参问题_第4张图片
swagger2.9+参数类型为String+使用RequestBody注解的传参问题_第5张图片

你可能感兴趣的:(swagger2.9+参数类型为String+使用RequestBody注解的传参问题)