【问题标题】:Gatsby plugin for third-party APIs throw error第三方 API 的 Gatsby 插件抛出错误
【发布时间】:2020-11-05 04:34:24
【问题描述】:

我的脚本设置如下:

"start-dev": "npm-run-all -p client server db",
"client": "gatsby develop",
"server": "nodemon server.js",
"db": "json-server db.json"

所以对于开发,我有一个由 json-server 提供的模拟数据库和一个由 json-server 提供的端点。所以我按照docs 安装了插件。并将插件配置为:

{
  resolve: `gatsby-source-graphql`,
  options: {
    typeName: `racing`,
    fieldName: 'members',
    url: 'http://localhost:3000/api/members',
  },
},
{
  resolve: `gatsby-source-graphql`,
  options: {
    typeName: `racing`,
    fieldName: 'teams',
    url: 'http://localhost:3000/api/teams',
  },
},

当我运行yarn run start-dev 时出现错误:

"gatsby-source-graphql" threw an error while running the sourceNodes lifecycle:
Response not successful: Received status code 404
  ServerError: Response not successful: Received status code 404

另外还有一些堆栈跟踪信息。最终我获得了前往 GraphQL 的常用链接(https:localhost:8000/__graphql),但我在此工具的可用查询中看不到 API 字段名。所以总体问题是我应该如何设置查询“第三方”API?具体来说,这是预期的错误吗?如何使用 GraphQL 工具查询 API?

谢谢。

【问题讨论】:

  • 这个错误是你写错graphql查询时出现的,请问可以添加这些查询吗!
  • 你可以配置gatsby-source-graphql使用的fetch实现。您可以使用它来打印它发出的请求。由于它是 404,因此请求可能会发送到错误的地址。见github.com/gatsbyjs/gatsby/issues/24603#issuecomment-636000987
  • @BloodyLogic 错误来自配置。错误发生时启动时未尝试查询。
  • @ehrencrona 感谢您提供“获取”选项的提示。您是否介意将我指向有关此选项的文档,以便我知道它的作用并可能帮助我诊断问题?

标签: graphql gatsby


【解决方案1】:

正如消息所示,您遇到了 HTTP 错误。这不是 graphql 错误,可能与您的插件或服务器配置有关(缺少 auth 标头、错误的端点、不兼容的 GraphQL 服务器等)。

使用 curlpostman! 对您的远程端点使用与插件相同的配置手动尝试相同的查询!

要在/ 根目录中为/ 根目录中的两个环境变量.env.development.env.production 提供auth header Gatsby 使用,前缀为GATSBY_ 将在浏览器JavaScript 中可用:

GATSBY_API_URL=https://dev.example.com/api

Resource

【讨论】:

  • 我改变了一些东西。但只有港口。现在我得到一个错误:```“gatsby-source-graphql”在运行sourceNodes生命周期时抛出错误:位置0的JSON中的意外令牌
  • 我为 Gatsby 创建了一个分支。在https://github.com/KevinBurton/GreatState/tree/gatsby 下。我做了一些更改,但错误虽然不同,但似乎仍然与测试库有关。只需运行yarn test,您就会看到错误。
  • 我没有看到 404?
  • @KevinBurton 我认为这是您创建的私人仓库,这就是我看不到的原因!尝试以隐身方式打开网址!
  • 因此,现在 404 来自应用程序的 GitHub 存储库。我会看看它。谢谢。
猜你喜欢
  • 2022-01-09
  • 2019-12-10
  • 2017-02-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 2020-10-22
  • 1970-01-01
相关资源
最近更新 更多