Graphql post body"必须提供查询字符串".

Gop*_*ard 30 express graphql graphql-js

我使用Express-graphql中间件.我在正文行中发送以下请求:

POST /graphql HTTP/1.1
Host: local:8083
Content-Type: application/graphql
Cache-Control: no-cache
Postman-Token: d71a7ea9-5502-d5fe-2e36-0ae49c635a29

{
   testing {
      pass(id: 1) {
        idn
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

并有错误

{
  "errors": [
    {
      "message": "Must provide query string."
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

在graphql中,我可以在URL中发送更新.

URL字符串太短.我必须发送更新模型

mutation {
  update(id: 2, x1: "zazaza", x2: "zazaza", x3: "zazaza" ...(more more fields)...) {
    idn
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为它必须在请求机构.我如何发送'更新'查询或我做错了?

Gop*_*ard 42

发布请求需要管理标头信息.

  1. 使用Http客户端:Content-Type application/json

  2. 使用Postman客户端:Content-Type application/graphql

但请求正文看起来像字符串

{"query":"mutation{update(id:1,x1:\"zazaz\",x2:\"zazaz\"......){id x1 x2}}"}
Run Code Online (Sandbox Code Playgroud)


Pra*_*aya 9

如果您正在使用graphql并希望使用邮递员或任何其他Rest客户端进行测试,请执行此操作.

在邮递员中,选择POST方法并输入您的URL设置Content-Type,application/graphql然后在正文中传递您的查询.

例:

http://localhost:8080/graphql
Mehtod: POST
Content-Type: application/graphql
Body: 
  query{
    FindAllGames{
    _id
    title
    company
    price
    year
    url
   }
 }
Run Code Online (Sandbox Code Playgroud)

多数民众赞成你会得到答复.

在此输入图像描述


小智 6

当您的“express-graphql”没有收到任何参数时,通常会发生这种情况。您需要在应用程序中添加 json/applicaton 解析器。

npm install body-parser
Run Code Online (Sandbox Code Playgroud)

例如-

const bodyParser = require('body-parser');

app.use(bodyParser.json()); // application/json
Run Code Online (Sandbox Code Playgroud)


gbe*_*ade 5

使用 Postman 版本7.2.2我有一个类似的问题。此版本的 Postman 开箱即用地支持 Graphql。更改 Content-typeapplication/json为我修复它。

显示 Postman 中内容类型的图像


小智 5

对我来说,工作如下:

在身体里

身体邮递员

在标题中

头邮递员

不要忘记在 Body 设置上标记 GraphQl [x]

在此输入图像描述

How 被引用 before 将动词更改为 POST。