Graphql Java hello world:将子模式添加到父模式失败
发布时间:2020-12-15 02:14:14 所属栏目:Java 来源:网络整理
导读:我正在尝试原型GraphQL Java( https://github.com/andimarek/graphql-java)并开始从hello world示例构建它.我正在使用GraphiQL来调用带有模式的graphQL服务,它适用于模式{hello1},但不适用于模式{testPojo}.请找到我在下面运行的代码.有人可以让我知道下面的
我正在尝试原型GraphQL
Java(
https://github.com/andimarek/graphql-java)并开始从hello world示例构建它.我正在使用GraphiQL来调用带有模式的graphQL服务,它适用于模式{hello1},但不适用于模式{testPojo}.请找到我在下面运行的代码.有人可以让我知道下面的代码有什么问题.
static GraphQLSchema schema = null; /** * POJO to be returned for service method 2 * @author * */ private class TestPojo { String id; String name; TestPojo(String id,String name) { this.id = id; this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } /** * service method 1 * @return */ public String greeting1() { return "Hello123"; } /** * service method 2 * @return */ public TestPojo greeting2() { return new TestPojo("1","Jack"); } /** * GraphQl endpoint invoked using GraphiQl * @param query * @return */ @RequestMapping("/query") public Object testGraphQLWithQuery(@RequestParam("query") String query) { return new GraphQL(schema).execute(query).getData(); } // Schema definition for graphQL static { // sub schema to be added to parent schema GraphQLObjectType testPojo = newObject().name("TestPojo").description("This is a test POJO") .field(newFieldDefinition().name("id").type(GraphQLString).build()) .field(newFieldDefinition().name("name").type(GraphQLString).build()) .build(); // parent schema GraphQLObjectType queryType = newObject().name("helloWorldQuery") .field(newFieldDefinition().type(GraphQLString).name("hello1").dataFetcher(new DataFetcher() { @Override public Object get(DataFetchingEnvironment arg0) { Object a = new GrapgQLSampleController().greeting1(); return a; } }).build()) .field(newFieldDefinition().type(testPojo).name("testPojo").dataFetcher(new DataFetcher() { @Override public Object get(DataFetchingEnvironment arg0) { Object a = new GrapgQLSampleController().greeting2(); return a; } }).build()) .build(); schema = GraphQLSchema.newSchema().query(queryType).build(); } 解决方法
我刚刚测试了你的代码,它似乎工作正常.你必须更具体地了解你所看到的错误.
如果您的问题是查询{testPojo}无效的原因,那么您应该已经阅读了所获得的错误:需要进行子选择.您无法在GraphQL中选择整个复杂对象,您必须指定所需的子字段,例如{testPojo {id,name}}是一个有效的查询,可以与您的架构一起使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Cassandra Pojo Sink Flink中的动态表名
- Java编程实现快速排序及优化代码详解
- java – Solr – 具有默认值的字段如果存储= false则重置自
- 如何在Java Applet中立即显示图像?
- 多线程 – Delphi指针内存和释放
- java – 如果不存在,将一个新值添加到地图中,或者添加它
- 当我尝试在Java中运行socket程序时,为什么会出现错误?
- java – Firebase在发布模式下找不到与对象一起序列化的属性
- Struts2 “#”符号:获取集合中的数据并进行选择操作
- java – file.canWrite(); file.canRead(); file.canExceut