Spring Boot 项目中 Rest 和 GraphQL API 的不同命名策略
我有一个带有不同 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论