使用Spring进行聚合的Graphql

使用Spring进行聚合的Graphql,graphql,graphql-java,Graphql,Graphql Java,我的应用程序已经构建了RESTAPI,我们计划使用GraphQL。我想知道是否有任何文档或在线参考资料介绍GraphQL Apollo与服务器端Spring的集成。请帮忙。你的问题太广泛了,无法回答。任何GraphQL客户端都将与任何GraphQL服务器一起工作,并且服务器可以使用任何框架堆栈实现,因为GraphQL只是API层 有关使用graphql java的最小(但相当完整)Spring引导示例,请参阅 简言之,您将创建一个普通控制器,在其中创建GraphQL模式并初始化运行时,并公开一个

我的应用程序已经构建了RESTAPI,我们计划使用GraphQL。我想知道是否有任何文档或在线参考资料介绍GraphQL Apollo与服务器端Spring的集成。请帮忙。

你的问题太广泛了,无法回答。任何GraphQL客户端都将与任何GraphQL服务器一起工作,并且服务器可以使用任何框架堆栈实现,因为GraphQL只是API层

有关使用graphql java的最小(但相当完整)Spring引导示例,请参阅

简言之,您将创建一个普通控制器,在其中创建GraphQL模式并初始化运行时,并公开一个端点以接收查询

@RestController
public class GraphQLSampleController {

    private final GraphQL graphQL;

    @Autowired
    public GraphQlSampleController(/*Inject the services needed*/) {

        GraphQLSchema schema = ...; //create the schema
        graphQL = GraphQL.newGraphQL(schemaFromAnnotated).build();
    }

    //Expose an endpoint for queries
    @PostMapping(value = "/graphql", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ResponseBody
    public Object endpoint(@RequestBody Map<String, Object> request) {
        ExecutionResult executionResult = graphQL.execute((String) request.get("query"));

        return executionResult;
    }
}
@RestController
公共类GraphQLSampleController{
私人最终图形ql GraphQL;
@自动连线
公共GraphQlSampleController(/*注入所需的服务*/){
GraphQLSchema模式=…;//创建模式
graphQL=graphQL.newGraphQL(schemaFromAnnotated.build();
}
//为查询公开端点
@PostMapping(value=“/graphql”,consumes=MediaType.APPLICATION\u JSON\u UTF8\u value,products=MediaType.APPLICATION\u JSON\u UTF8\u value)
@应答器
公共对象终结点(@RequestBody-Map-request){
ExecutionResult ExecutionResult=graphQL.execute((字符串)request.get(“查询”);
返回执行结果;
}
}

这是最低限度。有关使用graphql java工具但不使用Spring的完整教程,请查看。

非常感谢。我不知道我什么时候发布这个问题,但后来我在网上浏览了一些东西,获得了一些基本知识。你的回答真的很有用。我听说过apollo data graphql服务器,今天被推荐开始分析。但是我们有RESTAPI,它是用Spring和Jersey的组合构建的。apollo data是否附带任何此类工具或插件,用于转换来自客户端的查询,并为我提供一种与现有代码或API对话的方式。否则,我应该完全重写我现有的API或代码。请抛出一些有帮助的指针。@user2585494正如我所说,GraphQL只是一个API层,所以它可以重用您已经拥有的任何东西。您可以使用JavaScript中的GraphQL服务器调用REST端点,或者使用Java中的GraphQL服务器直接调用REST背后的相同方法。顺便说一句,如果我帮了你,为什么不接受并投票决定答案呢?