在春季启动时手动指定POST请求正文

时间:2019-03-26 00:32:06

标签: java spring spring-boot swagger swagger-ui

我在下面编写了这段代码:

@PostMapping(path = "/process", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "Get process with given ID", produces = MediaType.APPLICATION_JSON_VALUE,
        response = ProcessType.class)
public ResponseEntity<ProcessType> createProcessType(
        @RequestBody
        @DTO(ProcessTypeDto.class) ProcessType processType
) {
    log.info("POST called on /process");

    ProcessType processTypeResult;
...
...
}

效果很好。但是我的问题是大摇大摆。我做了一个自定义注释@DTO,它自动将一个类映射到另一个类。但是,昂首阔步看到了我的ProcessType请求正文,并在该类的UI中显示了示例,而不是ProcessTypeDto。如果删除了swagger显示的内容并执行POST ProcessTypeDto的代码,我将希望swagger将ProcessTypeDto显示为该端点的默认示例,因为这会破坏代码生成。

是否有一种方法可以手动指定我想从招贴POV覆盖我的@Requestbody是什么的请求正文?

1 个答案:

答案 0 :(得分:1)

到目前为止您似乎还不太幸运,它将在2.0版中发布

这是您要查找的https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Annotations#requestbody

,或者至少您可以开始使用候选版本 https://mvnrepository.com/artifact/io.swagger/swagger-core