如何从 GraphQL 获取 json
Posted
技术标签:
【中文标题】如何从 GraphQL 获取 json【英文标题】:How to get json from GraphQL 【发布时间】:2021-06-27 08:42:04 【问题描述】:您好,我正在搭建一个桥梁,将 GraphQL 的其他查询转换为另一个服务。我的想法是从查询中获取 json 到 GraphQL 并通过 resttemplate 进行查询。但我找不到获取请求正文的方法。 我很高兴看到您的代码示例或其他更有效的解决方案。
堆栈:Spring boot+ java 8 + graphql
@Component
public class VehicleQuery implements GraphQLQueryResolver
@Autowired
private VehicleService vehicleService;
public List<Vehicle> getVehicles(final int count)
return this.vehicleService.getAllVehicles(count);
public Optional<Vehicle> getVehicle(final int id)
return this.vehicleService.getVehicle(id);
【问题讨论】:
【参考方案1】:创建一个 JsonObject 实例。将您的查询添加到属性。将变量添加到同一个对象。
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("query", query);
jsonObject.add("variables", variables);
像这样在你的 java 代码中调用查询:
HttpResponse<String> httpResponse = post(jsonObject.toString());
【讨论】:
我无法从请求中获取查询( 你有什么输入?你能把它放在这里或举个例子吗?我不确定你的意思 我有 Springboot + graphql,这会创建虚拟控制器,控制器将其放入查询解析器中。但我不知道如何获得查询。我用我的 queryResolver 更新描述 您不能创建查看 Vehicle POJO 的查询吗?您需要查询才能获得响应 您可以使用DataFetchingEnvironment
获取查询和变量。以上是关于如何从 GraphQL 获取 json的主要内容,如果未能解决你的问题,请参考以下文章
如何从 GraphQLSchema javascript 对象获取 .graphql 文件?
我们如何从 GraphQL 的 RequestContextHolder 获取 GraphQL 的 HttpServletRequest(DefaultGlobalContext)(使用 graphq