如何在Spring Boot中为swagger UI指定请求主体?

问题描述

我有以下带注释的控制器用于摇摇欲坠:

  @PostMapping("/getMediaDataProduct/V2")
    @ResponseBody
    @ApiOperation(value = "get media data product v2")
    @ApiResponses({@ApiResponse(code = 200,message = "Successful",response = MediaDataProductResponseV2.class)})

    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "xxxxx",value = "xxxx",paramType = "header",required = true),@ApiImplicitParam(name = "xxxx",paramType = "header"),//  @ApiImplicitParam(name = "xxxxxx",value = "xxx",@ApiImplicitParam(name = "xxxxxx",value = "xxxxx",@ApiImplicitParam(name = "xxxxxxx",value = "xxxxxxxx",required = true)})

    public ResponseEntity getMediaDataProductV2(@RequestBody final String request,@RequestHeader final HttpHeaders headers) {
        Slogger.get().debug("/getMediaDataProduct/V2: this.mediaDataService: " + this.mediaDataService);

        MediaDataProductResponseV2 response = mediaDataService.getMediaDataProductV2(request);
        HttpStatus status = getHttpStatus(response.getStatusMessages(),response.getSystemErrors());
        List<StatusMessage> statusMessages = appendSuccessstatusMessage(response.getStatusMessages(),status);
        if(statusMessages !=null) {
            response.setStatusMessages(statusMessages);
        }
        return new ResponseEntity<>(response,new HttpHeaders(),status);
    }

如何指定请求主体,以便将其显示在招摇的用户界面中?

更新:我试图在许多论坛上对此进行研究,但似乎没有找到答案。 “如何像我对ApiResponses一样,通过使用大方的注释来指定请求主体类?”。在swagger UI中为主体创建了一个认参数,但是不知道如何通过引用请求主体类来指定它。

解决方法

如果我正确地理解了您的问题,则需要在swagger定义中显示一个响应类型。大部分时间Swagger都会自动将您的方法返回类型映射为响应类型。

但是,当它是泛型类(如您的情况,其ResponseEntity)时,它不会这样做。 如果您可以将返回类型设为ResponseEntity<MediaDataProductResponseV2>之类,它应该可以工作。