我目前正在使用“客户端GraphQL服务器”将RESTful端点包装到GraphQL端点。
但是如果服务器端也是GraphQL端点怎么办?如何通过轻量级方式在GraphQL服务器中排队另一个GraphQL服务器?
或者更一般地说,如果我有GraphQL服务器“A”和“B”,提供微服务,那么我使用GraphQL服务器“C”来集成“A”和“B”。我应该使用某种“服务器端客户端”使用apollo-client左右在“C”中排队“A”和“B”吗?
答案 0 :(得分:1)
我从未见过使用过这种方式的客户端GraphQL,但我想它会像往常一样工作。您有一个返回数据的解析器查询。在这种情况下,您将使用GraphQL请求而不是REST api请求,但原理是相同的。
请记住,GraphQL与其他api没有什么不同。您将HTTP请求(使用GraphQL,所有请求都是POST)发送到URL端点(使用GraphQL,URL始终相同)并使用您的请求发送参数数据(使用GraphQL,这是整个查询的位置)。
我想你可以将你的变量从客户端GraphQL查询转换为服务器GraphQL查询中的变量,并以这种方式构造你的查询。
使用cURL,您可以使用以下格式进行查询:
$ curl -XPOST -H "Content-Type:application/graphql" -d 'query RootQueryType { count }' http://localhost:3000/graphql
响应看起来像这样:
{
"data": {
"count": 0
}
}
只需使用您在客户端上使用的请求库来访问REST客户端,但修改它以匹配您尝试访问的GraphQL服务器的API。
答案 1 :(得分:0)
实际上,我认为解决与微服务交互的功能是一项工作。有关详细信息,请查看GraphQL and Microservice Architecture