提问人:Aleksandr 提问时间:11/16/2023 最后编辑:Aleksandr 更新时间:11/16/2023 访问量:16
如何在不检查每个字段的情况下解析春季中获取的字段 graphql?
How to resolve fetched fields graphql in spring without checking each field?
问:
我正在学习 GraphQL,并决定使用 GraphQL、Spring Boot 3.1.3、Java 20 和 spring-boot-starter-graphql 库开发一个小型应用程序。
GraphQL 的主要功能之一是能够指定需要哪些字段。我找到了一个简单的解决方案,通过检查字段是否为必填项,使用字段获取器在 Java 中实现这一点:
FetchingFields fields = context.getFetchedFields();
List<Car> cars = new ArrayList<>();
if (fields.contains("engine")) // do something and get engine for cars
if (fields.contains("wheels")) // add wheels information to cars list
if (fields.contains("price")) // get price and add to list
但是,我不喜欢这个解决方案,因为它不可扩展。我不想有一个有 50 个 if 语句的方法。
使用 Spring Boot 时,在 GraphQL 中处理获取字段的最佳方法是什么?是否有任何模式或库可以简化此过程并使其更具可扩展性?
我将不胜感激任何建议和最佳实践,以创建一个高效且可维护的解决方案来获取我的 GraphQL 应用程序中的必填字段。
答: 暂无答案
评论
Optional.ofNullable(fields.get("engine")).ifPresent(f -> doSomething(f));