如何在springdoc中更改namingstrategy?

7ajki6be  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(398)

我正在使用 springdoc . 它工作得完美无瑕,只是我尝试将默认的camelcase更改为pascalcase请求Map。
我在文档中搜索,找不到调整属性命名的配置。
使用时如何更改属性命名 springdoc ?

ikfrs5lh

ikfrs5lh1#

据我所知,你做不到。原因是无法通过使用swagger注解来更改请求处理程序的名称。
方法/标识符名称的lowercamelcase由java命名约定和google命名约定提升。
如果不遵循约定,您应该仍然能够编译和运行代码。除此之外,我不认为有一种官方的方法可以直接使用swagger来更改方法名的大小写。

mf98qq94

mf98qq942#

正如@debargha roy在他的回答中提到的,没有明确的方法可以通过 springdoc 属性。
我提出了基于github线程的kotlin解决方案。
得到 PascalCase 或者 UpperCamelCase 在招摇中,你可以使用 ModelResolver :

@Bean
fun modelResolver(objectMapper: ObjectMapper): ModelResolver {
    return ModelResolver(jacksonObjectMapper().registerModule(KotlinModule()).setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE))
}

它不能解析spring的输出响应 @RestController .
默认情况下,spring使用jacksonMap器使响应遵循大写字母,请使用此属性 spring.jackson.property-naming-strategy=UPPER_CAMEL_CASE 在properties/yaml文件中。
在这两个更改之后,您的swagger和restcontroller都将遵循大写camelcase样式。
注:
当心,如果你决定重用传入的 objectMapper (请参见下面的代码段),您可能会使用混合的camelcase获得重复的负载:

@Bean
fun modelResolver(objectMapper: ObjectMapper): ModelResolver {
    return ModelResolver(objectMapper.registerModule(KotlinModule()).setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE))
}

相关问题