Spring Boot 项目中 Rest 和 GraphQL API 的不同命名策略

发布于 2025-01-10 22:45:28 字数 643 浏览 0 评论 0原文

我有一个带有不同 Rest API 和 GraphQL API 的 Spring Boot 项目。由于 Rest API 可与一些旧服务配合使用,因此我需要将 spring.jackson.property-naming-strategy 设置为 CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES 。但是,我的 GraphQL 方案使用默认命名策略。它与graphql-java-tools v5配合得很好。但更新到 v12 后,GraphQL 方案的命名策略也发生了变化。

例如,可以在 Rest API 中使用名称 user_id 以及在 GraphQL API 中使用名称 userId 访问名称为 userId 的字段。现在,必须使用名称 user_id 来访问它们。

由于我无法更改使用这些 API 的其他服务,因此我需要更改 GraphQL 的命名策略。我尝试使用 @JsonNaming 注释来更改某些类的策略,但是,两个 API 中都使用了某些类,因此我无法将其用于 GraphQL 请求和响应中的每个类。

我找不到任何配置来更改仅适用于 GraphQL 的命名策略。我也无法更改 GraphQL 中的默认属性数据获取器,因为我不确定它是如何工作的。

I have a spring boot project with different Rest APIs and GraphQL APIs. Since the Rest APIs work with some old services, I need to set spring.jackson.property-naming-strategy to CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES. However, my GraphQL schemes work with the default naming strategy. It worked fine with graphql-java-tools v5. But after updating it to v12, the naming strategy for GraphQL schemes has also changed.

For example, a field with the name userId could be reached in Rest APIs with the name user_id and in the GraphQL APIs with the name userId. Now, both of them must be reached with the name user_id.

Since I can't change other services which use these APIs, I need to change the naming strategy for GraphQL. I tried @JsonNaming annotation to change the strategy for some classes, however, there are classes that are used in both APIs, so I can't use this for every class in my GraphQL requests and responses.

I could not find any config to change this naming strategy only for GraphQL. I also could not change the default property data fetcher in GraphQL, because I'm not sure how it works.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文