我一直试图通过阅读文章来理解GraphQl以及它是如何使用的。我已经看到了如何通过graphQl创建一个API,但是我还没有看到一篇文章演示第三方如何调用graphQl api。
根据我的经验,我主要使用httparty
gem(我使用ruby on rails)调用RESTful API,其格式如下:HTTParty.post(url, headers, body)
.
然而,调用graphQL API的人如何发出此请求?他们是否需要将graphql安装到他们的应用程序中才能发出请求?(理想情况下,所有内容都应该在api文档中?)或者我误解了graphql的工作原理?
2条答案
按热度按时间ilmyapht1#
在API中,客户端(第三方应用程序)可以通过向服务器发送GraphQL查询来发出请求,服务器将返回JSON响应
要发出GraphQL请求,客户端通常会向GraphQL API端点发送POST请求,其中包含包含GraphQL查询的JSON有效负载。请求还可以包含变量,这些变量可用于将动态数据传递给查询。示例:
在本例中,asking GraphQL返回ID为123的用户名。query字段包含GraphQL查询,variables字段包含变量id,用于获取具有给定id的用户
客户端不需要将GraphQL安装到他们的应用程序中。客户端可以使用任何支持使用JSON有效载荷发送POST请求的HTTP客户端库,如Ruby中的httpart。客户端不需要知道任何关于GraphQL模式或类型的信息,因为这些信息可以在API文档中找到。
关于使用GraphQL的GET与POST请求的说明;对于需要变量或变化的更复杂的查询,通常建议使用POST请求。GET请求最适合不需要复杂输入的简单查询。关于GET请求的另一个警告是一些GraphQL API可能不支持GET请求,因此希望确保检查文档以查看支持哪些请求方法
flseospp2#
没有必要安装GraphQL,因为它是一个不可知的规范,类似于RESTful服务。GraphQL告诉你(在模式中)为了接收你的响应,你需要发送什么。
例如,如果我正在调用一个Books API我会发送一个GET请求来获取图书列表,如下所示:
不同之处(确切地说,是众多不同之一)在于GraphQL API允许您选择所需的数据,在本例中:
因此,在您的情况下,您应该将
body
化为与您尝试使用的GraphQL API模式一致,并将其在HTTP POST请求中发送到端点:HTTParty.post(url, headers, body)