【问题标题】:How to change namingStrategy in springdoc?如何更改 springdoc 中的命名策略?
【发布时间】:2021-07-15 11:10:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: java spring-boot kotlin springdoc


    【解决方案1】:

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

    Java Naming ConventionsGoogle Naming Convention 提升方法/标识符名称的 lowerCamelCase。

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

    【讨论】:

      【解决方案2】:

      正如@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 mapper来响应UpperCamelCase,在properties/yaml文件中使用spring.jackson.property-naming-strategy=UPPER_CAMEL_CASE这个属性。

      在这 2 处更改之后,您的 Swagger 和 RestController 都将遵循 UpperCamelCase 样式。

      注意:

      请注意,如果您决定重用传入的objectMapper(请参阅下面的 sn-p),您可能会得到重复的有效载荷和混合的 camelCase:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        相关资源
        最近更新 更多