我目前正在使用“客户端GraphQL服务器”将RESTful端点封装到GraphQL端点。
但是,如果服务器端也是一个GraphQL端点呢?如何在GraphQL服务器中以轻量级方式对另一个GraphQL服务器进行排队?
或者更一般地,如果我有提供微服务的GraphQL服务器"A“和"B",那么我使用GraphQL服务器"C”来集成"A“和"B”。我是否应该使用某种使用apollo客户端的“服务器端客户端”来将"A“和"B”排在"C“中?
发布于 2017-06-02 03:57:54
我从未见过客户端GraphQL以这种方式使用,但我想它会像往常一样工作。您的查询带有一个返回数据的解析器。在本例中,您将使用GraphQL请求而不是REST api请求,但原理是相同的。
请记住,GraphQL与其他任何应用程序接口没有太大不同。您可以将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。
发布于 2017-07-19 21:38:44
实际上,我认为解析函数的工作是与你的微服务交互。有关更多信息,请查看GraphQL and Microservice Architecture
https://stackoverflow.com/questions/40005554
复制相似问题