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

在spring boot中使用openapi将@schema(AllowableValues=)用于enum param

李昊苍
2023-03-14

我的API在请求正文中有一个枚举字段。当我生成swagger UI时,它将以允许的值作为枚举名称来显示枚举。我需要将其设置为枚举值,而不是枚举名称。为此,我使用了@schema(AllowableValues=)。这将导致在swagger UI中同时包含值和名称的列表。我只能大摇大摆地设置这个值吗?

我的枚举示例:

 public enum Days{
  MON("Monday"),
  SUN("Sunday")
}

目前大摇大摆的领域看起来像:

任何解决方案都是赞赏的。

共有1个答案

潘秦斩
2023-03-14

如果您正在使用Jackson,那么swagger增加了对使用注释@jsonproperty/@jsonValue中定义的值的支持,该注释包含在V2.1.3 https://github.com/swagger-api/swagger-core/releases/tag/v2.1.3中

所以你可以写

 public enum Days{
     @JsonProperty("Monday")
     MON,
     @JsonProperty("Sunday")
     SUN
}
 类似资料:
  • 使用的技术: Spring Boot 1.4.2.Release,Spring 4.3.4.Release,Tymeleaf 2.1.5.Release,Tomcat Embeded 8.5.6、Maven 3、Java 8 我创建了这个服务来发送电子邮件

  • 如何使用将此代码段调整为等效的OpenAPI 2.0版本?

  • 要使用本节中描述的AOP命名空间标记,您需要按照描述导入springAOP模式 - <?xml version = "1.0" encoding = "UTF-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-insta

  • 我想把@AutoWired注释变成一个“方面”。我想在我的方面中注入一个存储库,但是当我试图调用autowired类的方法时,出现了NullPointException。 我已经尝试在aspect类上添加,但我出现了同样的错误。 如果我不使用aspect类,而是使用,我可以毫无问题地调用存储库。 一些文档谈到了spring的xml文件配置,但在spring boot,我没有这些文件。 这里是pom

  • 我正在将我的.NET核心项目从2.2升级到3.1······ 我还更新了Swagger版本,它现在是基于OpenAPI的。我从Swagger获得的API的。json模式已经更改了自定义泛型类型的$ref名称。我在很多回应中使用这些类型。 我不确定这是因为OpenApi规范,还是我没有配置正确的东西。