我正在尝试原型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(); }