在 GraphQL 中使用 REST API 进行数据获取的解决方案

GraphQL 是一种用于 API 的查询语言,它提供了一种更高效、更强大的方式来获取和修改数据。然而,有时候我们需要从已有的 REST API 中获取数据,这时候该怎么办呢?本文将介绍如何在 GraphQL 中使用 REST API 进行数据获取的解决方案。

问题

假设我们有一个 REST API,它能够返回一些 JSON 数据,例如:

我们想要在 GraphQL 中获取这个数据,我们可以这样写一个 GraphQL 查询:

但是,我们无法直接在 GraphQL 中调用这个 REST API,因为 GraphQL 和 REST API 是两种不同的技术。那么,该怎么办呢?

解决方案

我们可以使用 GraphQL resolver 来解决这个问题。GraphQL resolver 是一个函数,它能够将 GraphQL 查询映射到实际的数据源。我们可以编写一个 resolver 函数来调用 REST API 并返回数据。

下面是一个示例 resolver 函数:

在这个示例中,我们使用了 node-fetch 库来发起 HTTP 请求。我们首先定义了 REST API 的 URL,然后在 resolver 函数中使用 fetch 函数来获取数据,最后将数据返回。

我们还需要将这个 resolver 函数注册到 GraphQL schema 中,例如:

在这个示例中,我们定义了一个 User 类型和一个 Query 类型,然后将 resolver 函数注册到 Query 类型中。

现在,我们就可以在 GraphQL 中使用这个 resolver 函数了,例如:

总结

在使用 GraphQL 进行数据获取时,有时候我们需要从已有的 REST API 中获取数据。通过编写 resolver 函数,我们可以将 GraphQL 查询映射到实际的数据源,并返回数据。本文介绍了如何在 GraphQL 中使用 REST API 进行数据获取的解决方案,并提供了示例代码。希望本文能够对你有所帮助!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65123ee295b1f8cacdaaa2f5


纠错
反馈