gpt4 book ai didi

java - Springfox/Swagger 中用于返回 ObjectNode 的自定义 ResponseModel

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:37:15 26 4
gpt4 key购买 nike

我想使用 Swagger 为我的 Spring Boot API 提供 API 文档。我设法让 Springfox 2.3.0 正常工作,除了 Controller 返回 ObjectNode 之外,一切都按预期工作。 Swagger 尝试将返回的类 (ObjectNode) 转换为 JSON-Representation,结果是这样的:

{
"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
}

现在我知道,Swagger 无法猜测我构建的 JSON 中包含哪些值,但我想以任何形式手动添加正确的 ResponseModel。

Controller 看起来像这样:

@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);
}

有什么方法可以向 Swagger 提供自定义 ResponseJSON,它在文档中显示为模型架构?

最佳答案

我们可以使用 swagger springfox 注释在 swagger api 文档中提供自定义请求和响应模型,如下所示

@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 中的内容

这就是你要找的吗

关于java - Springfox/Swagger 中用于返回 ObjectNode 的自定义 ResponseModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34994267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com