在我的项目中我使用带有启动功能的springboot。我创建了这样的post方法:
@RequestMapping("/ufile")
@Api(value = "文件服务", tags = {"文件服务"})
public class UfileController extends BaseApiController {
private static final Logger logger = LoggerFactory.getLogger(UfileController.class);
@ApiOperation(value = "文件上传", response = ApiResponse.class)
@PostMapping(value = "/upload", produces = "application/json;charset=utf-8")
public ApiResponse upload(@Valid @RequestBody UploadRequest uploadRequest, @ApiIgnore HttpServletResponse response
, @RequestParam(value = "protocol", defaultValue = "thrift", required = false) @ApiIgnore String protocol) {
.......
}
}
在上面的代码中,我在模型UploadRequest中使用了@RequestBody。 这就是模型 UploadRequest :
@Data
@ApiModel("文件上传请求")
public class UploadRequest extends BaseRequest {
@ApiModelProperty(value = "上传的文件", name = "上传的文件")
@NotEmpty
private MultipartFile[] multipartFiles;
@ApiModelProperty(value = "租户id", name = "租户id")
@NotBlank
private String tenantId;
@ApiModelProperty(value = "图片是否需要对应水印图片", name = "图片是否需要对应水印图片")
private boolean needWaterMark;
}
Swagger在此场景中运行良好,找到了ApiModel UploadRequest ,当我访问swagger-ui.html时,我可以看到:
但是当我在模型UploadRequest中不使用@RequestBody时,swagger找不到 UploadRequest 。当我访问swagger-ui时,<<中没有 UploadRequest strong>型号标签。
我想要的是当我像这样更改代码时
@RestController
@RequestMapping("/ufile")
@Api(value = "文件服务", tags = {"文件服务"})
public class UfileController extends BaseApiController {
private static final Logger logger = LoggerFactory.getLogger(UfileController.class);
@ApiOperation(value = "文件上传", response = ApiResponse.class)
@PostMapping(value = "/upload", produces = "application/json;charset=utf-8")
public ApiResponse upload(@Valid UploadRequest uploadRequest, @ApiIgnore HttpServletResponse response
, @RequestParam(value = "protocol", defaultValue = "thrift", required = false) @ApiIgnore String protocol) {
}
}
swagger仍然可以找到ApiModel UploadRequest。当我访问swagger-ui.html时,标签 Model 包含UploadRequest。
请问谁能帮助我。
答案 0 :(得分:1)
您的要求对我来说有点含糊。
顺便说一句,当您使用@RequestBody
批注时,它只是将Http
请求的主体绑定到模型对象。简而言之,当您避免使用该注释时,您将错过一个请求发送的任何http
请求的正文内容,因此,您不会大张旗鼓。而已。
如果您需要更多说明或其他说明,请提及。