【问题标题】:GraphQL Query via cURL -- Unexpected <EOF> error通过 cURL 进行 GraphQL 查询——意外的 <EOF> 错误
【发布时间】:2019-03-09 03:33:28
【问题描述】:

我正在通过 Insomnia 客户端传递它,没有任何问题并且返回数据:

{ "query": "{purchaseOrders{poNumber}}"}

但是,当我尝试通过 curl 推动它时,我遇到了一个错误。这是我的 curl 命令:

curl -X POST -g -H "Authorization:Bearer token" -H "content-type:application/json" -H "accept:application/json" -d '{"query":"{purchaseOrders{poNumber}}"}' https://api.wayfair.com/v1/graphql

我收到以下错误:

{"errors":[{"message":"Syntax Error GraphQL (1:1) Unexpected <EOF>\n\n1: \n ^\ n","category":"graphql","locations":[{"line":1,"column":1}]}]}

我没有看到类似这样的示例,并且在 API 客户端上取得了成功,所以我不确定问题可能是什么。

编辑以包含 POST 请求:

POST /v1/graphql HTTP/1.1
Host: api.wayfair.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <token>
Cache-Control: no-cache
Postman-Token: bf83f6be-a560-43b8-8519-6f05a6a60f83

{"query":"{purchaseOrders{poNumber}}"}

【问题讨论】:

  • 您是否将有效负载作为正文数据接收?在客户端,它是如何发送的?有效载荷格式。错误是Unexpected &lt;EOF&gt;,您的身体数据中缺少某些内容。 \n 属于错误消息。
  • 另外,如果你想使用 curl 之类的 CLI 工具来实现 graphql,你看过github.com/hasura/graphqurl 吗?

标签: curl graphql


【解决方案1】:

发现问题:

{"query":"{purchaseOrders{poNumber}}"}

应该是:

{\"query\": \"query { purchaseOrders { poNumber }}\" }

现在可以使用附加查询动词

【讨论】:

    【解决方案2】:

    一些 GraphQL 客户端根据请求请求 adicional 字段为 variablesoperationName

    主体示例:

    {"query":"{purchaseOrders{poNumber}}", "variables":null, "operationName":null}"
    

    【讨论】:

    • 你有一些客户发送的正文的例子吗?如果您在浏览器上使用它,您可以在网络选项卡上获取它。
    • 让我明白这一点并添加到我的问题中。谢谢!
    猜你喜欢
    • 2019-12-06
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多