Swagger 新增 和 更新操作 接口 Execute 无响应 查询 删除操作 参数字段下面是ref 提示required field is not provided

创建 更新 接口  一直 在 LOADING

 

查询删除 接口

参数 输入框 爆红 

Swagger 新增 和 更新操作 接口 Execute 无响应 查询 删除操作 参数字段下面是ref 提示required field is not provided_第1张图片 

 

创建 更新 解决方式 

错误的写法

    @ApiOperation(value = "创建用户基本信息", httpMethod = "POST")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "UserDTO", value = "用户信息", required = true, dataType = "UserSelfBaseCatalogDTO"),
    })
    @PostMapping("/create-one")
    ResultData createOne(@RequestBody @Validated(User.Create.class)UserDTO userDTO) {
        return userService.createOne(userDTO);
    }

正确的写法

    @ApiOperation(value = "创建用户基本信息", httpMethod = "POST")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "userDTO", value = "用户信息", required = true, dataType = "UserSelfBaseCatalogDTO"),
    })
    @PostMapping("/create-one")
    ResultData createOne(@RequestBody @Validated(User.Create.class)UserDTO userDTO) {
        return userService.createOne(userDTO);
    }

原因就是  @ApiImplicitParam 的 name 属性  要跟参数一致。 更新同理

删除查询解决方式

原因是  @ApiImplicitParams 中的  dataType 改为 写错了   改为 String 或者 Long 就可以了 之前 用了Ineger ,所以不对 还是要按照规范去操作。

关于其中@Api和@ApiOperation等的详细解释如下:

作用范围 API 使用位置
对象属性 @ApiModelProperty 用于出入参数对象的字段上
协议集描述 @Api 用于Controller类上
协议描述 @ApiOperation 用在Controller的方法上
Response集 @ApiResponses 用在controller的方法上
Response @ApiResponse 用在 @ApiResponses里边
非对象参数集 @ApiImplicitParams 用在controller的方法上
非对象参数描述 @ApiImplicitParam 用在@ApiImplicitParams的方法里边
描述返回对象的意义 @ApiModel 用在返回对象类上

 

关于参数的详细解释

属性 取值 作用
paramType   查询参数类型
  path 以地址的形式提交数据
  query 直接跟参数完成自动映射赋值
  body 以流的形式提交 仅支持POST
  header 参数在request headers 里边提交
  form 以form表单的形式提交 仅支持POST
dataType   参数的数据类型 只作为标志说明,并没有实际验证
  Long  
  String  
name   接收参数名(必须与方法中参数名一致)
value   接收参数的意义描述(描述信息)
required   参数是否必填
  true 必填
  false 非必填
defaultValue   默认值

 

你可能感兴趣的:(随笔)