当前位置: 首页 > 知识库问答 >
问题:

Springfox/Swagger中用于返回ObjectNode的自定义响应模型

章安宜
2023-03-14

我想使用Swagger为我的Spring Boot API提供一个API文档。我设法让Springfox 2.3.0正常工作,除了返回ObjectNode的控制器外,其他一切都正常工作。Swagger尝试将返回的类(ObjectNode)转换为JSON表示,结果如下:

{
    "array": true,
    "bigDecimal": true,
    "bigInteger": true,
    "binary": true,
    "boolean": true,
    "containerNode": true,
    "double": true,
    "float": true,
    "floatingPointNumber": true,
    "int": true,
    "integralNumber": true,
    "long": true,
    "missingNode": true,
    "nodeType": "ARRAY",
    "null": true,
    "number": true,
    "object": true,
    "pojo": true,
    "short": true,
    "textual": true,
    "valueNode": true
}

现在我知道了,那个大摇大摆的人猜不出我构建的JSON中包含哪些值,但我想以任何形式手动添加正确的ResponseModel。

控制器看起来像这样:

@ApiOperation(value = "NAME", notes = "NOTES")
@RequestMapping(value = "", method = RequestMethod.GET, produces="application/json")
public ResponseEntity<ObjectNode> getComponentByIdentification(
            @ApiParam(name="customerid", required=true, value="")
            @RequestParam (required = true)
            String customerId){
    return new ResponseEntity<ObjectNode>(someService.getCustomer(customerId), HttpStatus.OK);
}

我有没有办法提供一个自定义的ResponseJSON to Swagger,它在文档中显示为模型模式?

共有1个答案

蒲德曜
2023-03-14

我们可以使用springfox中的定制api和swagger模型来给出响应

@PostMapping
@ApiOperation(value = "Create Article", response = ArticleDTO.class)
@ApiImplicitParams({
@ApiImplicitParam(name = "Article DTO", value = "article", required = true, dataType = "com.example.ArticleDTO", paramType = "body")})
    public Article create(@ApiIgnore Article article) {
        return articleRepository.save(article);
    }

这里的请求和响应是ArticleDTO,但将由Jackson转换为Article,但文档将显示ArticleDTO中的内容。JAVA

这就是你要找的吗

 类似资料:
  • 我在Spring Boot应用程序中配置了SpringFox Swagger。当我尝试访问“HTTP://localhost:8080/swagger-ui.html”时,看到的是HTTP 406(HttpMediaTypeNotAcceptableException

  • 在响应的模型架构中,日期的标签显示为“localdate”。这不是有意的:我们希望有“date”或“yyyy-mm-dd”代替。 我们有这样一个类: 这就产生了这个模型模式: 有什么想法,我可以如何改变LocalDate到'date'或'yyyy-mm-dd'在swagger的模型模式?

  • 目前正在使用springfox 2.9.2大摇大摆地记录Spring中创建的API。我想在文档中添加示例响应,如下图所示; 我的理解是,我可以做类似的事情: 在本例中,我将此代码片段放在方法的正上方。不幸的是,上面的两个示例总是显示:标识符预期错误 但我也看到我也能做到这一点: 我还看到我可以添加一个级别的示例: 我的问题是: > 将Swagger/Springfox指向my model/bean

  • 问题内容: 我已经按照以下Flask-RESTful文档定义了自定义响应格式。 我有以下资源类。 我希望函数返回类型,函数返回默认值。 我该怎么做呢?关于这一点,文档不是很清楚。 问题答案: 使用哪种表示方式取决于request,标头类型。 的请求通过使用你的函数来响应。 如果你需要API方法中的特定响应类型,则必须使用返回“预烘焙”响应对象:

  • 我试图显示一个自定义容器,作为一个成功的响应。我无法描述这方面所需的模型 THIS Paged响应信息实际上是一个自定义集合 如果其中包含一个Report对象集合,如何指定容器?有人能帮帮我吗?我在Spring引导中使用springfox swagger-2.9.2

  • 我使用springfox-swagger2和springfox-swagger-ui(version2.9.2)进行了一个spring boot application,根据我的组件及其注释方法,生成了良好的交互式api文档。 我希望通过自定义注释增强生成的文档(例如,通过javadoc)。有没有办法做到这一点?我已经读了几个教程,我不是守望者...