gpt4 book ai didi

java - 如何用资源链接替换 ​​Swagger 的枚举?

转载 作者:行者123 更新时间:2023-12-02 03:34:46 28 4
gpt4 key购买 nike

我从the documentation知道我可以像这样注释我的 POJO:

@ApiModelProperty(value = "pet status in the store", allowableValues = "available,pending,sold")
public String getStatus() {
return status;
}

产生类似的东西:

"properties": {
...,
"status": {
"type": "string",
"description": "pet status in the store",
"enum": [
"available",
"pending",
"sold"
]
}
}

现在要实现该方法的图像:

@ApiModelProperty(value = "pets in the store")
public Set<String> getPets() {
return pets;
}

返回商店中可用宠物的列表。例如,有一天,它可能是 ["cats", "dogs", "songbirds"],然后当 Songbirds 时,它只是 ["cats", "dogs"]卖完了。

我的 API 实际上有一个端点来获取宠物列表:

http://petShop.foo/pets

而不是使用allowableValues =“猫,狗,鸣鸟”,我想用 Swagger 注释来指定该字段必须包含给定端点返回的值。也就是说,类似于:

@ApiModelProperty(value = "pets in the store", allowableValues = "/pets")
public Set<String> getPets() {...}

这是为了让我的客户端/前端知道在发出请求时可以使用哪些值,例如,在线购买宠物。如果我有 "enum": ["cats", "dogs", ..]

我该怎么做

最佳答案

您可以执行以下操作:

  • fork Swagger
  • 扩展方法 processAllowedValuesio.swagger.util.ParameterProcessor除了逗号分隔值之外,类还使用 Enum 类。 (目前仅支持逗号分隔值和范围)
  • 在构建 Web 应用程序时使用您的自定义 Swagger 变体

但是,使用此方法,您需要继续维护 Swagger 分支。

关于java - 如何用资源链接替换 ​​Swagger 的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37569173/

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