已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
2天前关闭。
Improve this question
如何使用graphql查询从REST API获取数据
如何使用graphql从REST API获取数据
已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
2天前关闭。
Improve this question
如何使用graphql查询从REST API获取数据
如何使用graphql从REST API获取数据
2条答案
按热度按时间svdrlsy41#
一般来说,以传统的RESTful方式查询REST API更容易,而GraphQl只查询GraphQL。但是,我将假设在您的示例中,您运行了GraphQL服务器,并且您正在尝试查询一个只能使用REST的公共API。有几种不同的方法可以完成此操作,但这两种方法都需要您对所查询的数据模式有一定的了解。
如果您想在客户端执行此操作,您可以使用axios、fetch、got或任何其他您喜欢的HTTP代理来执行典型的REST查询,并将该数据与GraphQL数据合并到UI中。Apollo Client提供了一个选项,通过在查询中的特定字段上包含
@client
来区分数据而不是来自GraphQL API。这有助于维护该高速缓存并保持全局模式同步。如果您已经运行了GraphQL服务器,则需要定义自定义架构和解析器,以匹配从REST API获取的数据。下面是一个非常小的示例,使用
express-graphql
通过SpaceX REST API创建GraphQL端点。然后,您可以将其与其他解析器合并,以完成GraphQL端点。
g9icjywg2#
选项1)使用一些Graphql服务器:Apollo在REST之上分层GraphQL此处提供详细信息https://www.apollographql.com/blog/backend/layering-graphql-on-top-of-rest/或者Hasura能够设置GraphQL以从REST API获取数据
选项2)对于您自己的编码,使用EasyManage(免费计划)在所需模式上生成免费GraphQL API和REST API,并在内部自定义GraphQL解析器以从REST API获取数据:此处示例:
GrpahQL解析器:
根据以下内容自定义上述解析器,以从REST API中提取(注意:类名不同,这只是代码建议):
代码可以下载,然后定制和打包/运行为jar graphql服务。