如何更改 springdoc 中的命名策略?

How to change namingStrategy in springdoc?

我正在使用 springdoc。它工作完美,除了我试图将默认的 camelCase 更改为 PascalCase 请求映射。

我搜索了文档,找不到调整 属性 命名的配置。

如何在使用 springdoc 时更改 属性 命名?

据我所知,你做不到。原因是无法使用 Swagger 注释更改请求处理程序的名称。

method/identifier 名称的小驼峰式命名由 Java Naming Conventions and also by the Google Naming Convention 提倡。

如果您不遵循约定,您应该仍然能够编译和 运行 代码。除此之外,我不认为有直接使用 Swagger 更改方法名称大小写的官方方法。

正如@Debargha Roy 在他的回答中提到的,没有明确的方法可以通过 springdoc 属性来做到这一点。

我根据 GitHub thread.

提出我的 Kotlin 解决方案

要在 Swagger 中获取 PascalCaseUpperCamelCase,您可以使用 ModelResolver:

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

它不解析来自 Spring @RestController 的输出响应。

默认情况下,Spring 使用 Jackson 映射器使响应遵循 UpperCamelCase,在 properties/yaml 文件中使用此 属性 spring.jackson.property-naming-strategy=UPPER_CAMEL_CASE

经过这 2 次更改后,您的 Swagger 和 RestController 都将遵循 UpperCamelCase 样式。

注意:

请注意,如果您决定重用传入的 objectMapper(请参阅下面的代码片段),您可能会得到混合驼峰式大小写的重复负载:

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