在没有datafetcher的情况下为graphql-java配置REST控制器,可以通过以下步骤实现:
GraphQLSchema schema = new GraphQLSchema.Builder()
.query(new GraphQLObjectType.Builder()
.name("Query")
.field(newFieldDefinition()
.name("hello")
.type(Scalars.GraphQLString)
.dataFetcher(environment -> "Hello, GraphQL!")
.build())
.build())
.build();
在上述示例中,我们创建了一个简单的Schema对象,其中包含一个名为"hello"的查询字段,返回一个字符串"Hello, GraphQL!"。
@RestController
@RequestMapping("/api")
public class GraphQLController {
private final GraphQLSchema schema;
public GraphQLController(GraphQLSchema schema) {
this.schema = schema;
}
@PostMapping("/graphql")
public ResponseEntity<Object> executeGraphQL(@RequestBody Map<String, Object> request) {
ExecutionResult executionResult = new GraphQL(schema).execute(request.get("query").toString());
return ResponseEntity.ok(executionResult.toSpecification());
}
}
在上述示例中,我们定义了一个POST请求的接口"/api/graphql",接收一个包含GraphQL查询的请求体。然后,我们使用graphql-java的执行引擎来执行查询,并将结果返回给客户端。
这样,你就可以在没有datafetcher的情况下为graphql-java配置REST控制器了。请注意,上述示例中的Schema和Resolver仅作为演示,实际应用中需要根据具体需求进行调整和扩展。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云容器服务(TKE)、腾讯云数据库(TencentDB)等。你可以在腾讯云官网(https://cloud.tencent.com/)了解更多产品信息和文档。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云