gpt4 book ai didi

java - 使用 @ModelAttribute 时未显示自定义域对象

转载 作者:行者123 更新时间:2023-12-02 13:42:36 24 4
gpt4 key购买 nike

我正在使用 Springfox 和 Swagger 生成 swagger 文件。现在,我正在使用 @ModelAttribute 从对象 (NetworkCmd) 中提取变量,以在 swagger 文档中显示为查询参数。

我目前有以下 Controller :

@RequestMapping(value = "/{product_id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseHeader()
public ResponseEntity<?> networkResponse(
@RequestHeader HttpHeaders headers,
@PathVariable("product_id")String productId,
@Valid @ModelAttribute NetworkCmd cmd,
BindingResult result)
throws Exception {

...
}

这是 NetworkCmd 的示例:

@ItemId
@NotNull(message = "product cannot be null")
@ApiModelProperty(
value = "testing")
private String product_id;

@ApiModelProperty(
value = "key",
private String key;

@ApiModelProperty(
value = "parent")
private Boolean is_parent_id;

@Min(0)
@ApiModelProperty(
value = "radius")
private double radius = 10d;

此类中的变量之一是自定义域对象Nearby

private Nearby nearby = null;

public Nearby getNearby() {
return nearby;
}

public void setNearby(String nearby) throws ParseException {
this.nearby = Nearby.parse(nearby);
}

这是一种特殊变量,因为它接受一个字符串,然后解析该字符串并将其转换为 Nearby 对象。

我的问题是这个 Nearby 变量没有显示在通过 @ModelAttribute 生成的 swagger 文档上。我很高兴提供更多信息。

最佳答案

解决此问题的一种方法是在您的摘要中创建替代类型规则。这样,每当我们遇到附近的类型时,我们都会将其视为字符串。

new Docket(...)
.directModelSubstitute(Nearby.class, String.class)

关于java - 使用 @ModelAttribute 时未显示自定义域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42656693/

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