【问题标题】:What should a blank GraphQL query return?一个空白的 GraphQL 查询应该返回什么?
【发布时间】:2017-10-31 19:14:46
【问题描述】:

我正在尝试构建一个 GraphQL 服务器,并且我正在尝试使用 GraphiQL Chrome 扩展来使用它。

只要我将端点设置为我的服务器 http://localhost:3000/graphql,GraphiQL 就会发送一个空查询:

Request URL:http://localhost:3000/graphql
Request Method:POST
Status Code:200 OK
Remote Address:[::1]:3000
Referrer Policy:no-referrer-when-downgrade

我让它返回一个空响应,但随后,我在 Chrome 中收到了这个 JavaScript 错误:

react.min.js:14 Uncaught TypeError: Cannot read property 'length' of undefined
    at GraphiQL.autoCompleteLeafs (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/graphiql/graphiql.js:1060:33)
    at GraphiQL._runEditorQuery (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/graphiql/graphiql.js:1131:13)
    at Object.r (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:14:10134)
    at i (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:21911)
    at Object.u [as executeDispatchesInOrder] (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:22122)
    at p (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:18475)
    at f (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:18601)
    at Array.forEach (native)
    at r (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:15:26156)
    at Object.processEventQueue (chrome-extension://fkkiamalmpiidkljmicmjfbieiclmeij/ext/react.min.js:12:19721)


在那之后,GraphiQL 就完全不起作用了。我可以输入任何查询,单击播放按钮,它所做的只是重复错误:

​​​ 我错过了什么? GraphiQL 是否期望从空白查询中获得某种模式?

【问题讨论】:

    标签: graphql graphiql


    【解决方案1】:

    我相信 GraphiQL chrome 扩展需要来自 API 的对象响应。尝试在 emtpy 请求中返回一个空白对象,看看是否可以为您解决问题。

    在提交空白请求时查看https://launchpad.graphql.com(也使用GraphiQL),我得到以下对象:

    {
      "code": 400,
      "error": "Script returned an error.",
      "details": "No query was provided in request body."
    }
    

    这是可用于调试的描述性响应。

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 2020-03-01
      相关资源
      最近更新 更多