如何通过邮递员发送graphql查询?


79

我用

POST type
URL http://######/graphql
Body: 
query: "query: "{'noteTypes':  {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"

但是它返回 “ message”:“必须提供查询字符串”。

Answers:


134

有一种使用REST客户端Insomnia的更好的方法

文档在这里,如何发送graphql查询:https : //support.insomnia.rest/article/61-graphql


以下是邮递员的步骤

步骤1。

在Chrome中运行GraphiQL,打开Chrome开发者控制台,点击“网络”标签,然后通过graphiql进行查询,当您进行查询时,“网络”标签将显示graphql请求...

在此处输入图片说明

第2步。

graphql请求中复制请求查询,选择Copy as cURL (cmd)

在此处输入图片说明

第三步

打开Postman,在左上角单击Import按钮,单击后,Import您必须单击Paste Raw Text,然后在cURL完成后粘贴复制的请求(如在步骤2中所做的那样),Import

在此处输入图片说明

第四步。

邮递员已准备好发送Graphql请求,只需单击Send按钮,您将Response在正文的“响应”框中看到如下所示

在此处输入图片说明

第五步

要查看查询的发送方式,请点击Body旁边的标签Headers,您将了解如何以JSON格式提供来自邮递员的字段。

例如:edges {\n node {\n id\n jobId\n }\n,如果要查看其他字段,则需要在后缀中添加\n

喜欢,name然后:edges {\n node {\n id\n jobId\n name\n }\n

\n这里只是表示新的一行。相反,您可以通过提供如下所示的清晰说明性JSON来简化操作

============================================= ========================

注意:正文类型必须是原始application/json内容类型。因此,查询必须是带引号的有效JSON".."

{  
   "query":"{viewer {user {edges {node {id jobId name }}}}}"
}

============================================= ========================

在此处输入图片说明

您可以直接从step 5如果您知道如何在正文中发送查询以及在向邮递员发出请求时需要的其他方式开始

在此处输入图片说明

使用简化的JSON

在此处输入图片说明


1
惊人!惊人!
ZPPP

真的邮递员对graphql没用,我们需要一个带邮递员屏幕的
graphiql

太好了,谢谢您的调音
zhulinpinyu

当使用相同的步骤时,我得到:,导入Curl时出错:找到2个少选项的参数。仅支持一个URL(URL)
Ankit Gupta '18

2
使用cURL(bash)复制对我有用,而不是使用Windows 10 OS上的chrome postman应用程序复制为cURL(cmd)
另一个编码器

46

如果GraphQL服务器响应Content-type: application/graphqlpostman.setEnvironmentVariable,则不需要INSOMNIA。

去做就对了:

在标题选项卡中: Content-Type: application/graphql

在“正文”选项卡中,选择“原始”,将您的查询

在此处输入图片说明


我得到“没有查询字符串存在”的尝试
dima,

1
非常适合我!使用具有express和express-graphql依赖项的Node.js。
布莱恩(Brian)


19

有一种简单的方法可以做到这一点。使用请求前脚本对有效负载()进行字符串化。

步骤1。

在请求的正文中,为有效负载放置一个占位符。

{
    "query":{{query}}
}

第2步。

在请求前脚本中创建有效负载,并将其存储在环境变量中。

postman.setEnvironmentVariable("query", JSON.stringify(
`
{
  search(query: "test", type: ISSUE, first: 10) {
    issueCount
    edges {
      node {
        ... on Issue {
          title
          id
          state
          closed
          repository {
            name
          }
        }
      }
    }
  }
}
`
));

而已。


4
这就像一种魅力,并且避免了前面答案中描述的所有手动步骤的麻烦!谢谢。
Alexis.Rolland

11

更新2:

使用POSTMAN是不实际的,因为POSTMAN仍以一种简单的方式添加头文件,并且需要很长时间,而且我认为POSTMAN并不是用graphql自然工作的,

您可以在此处关注有关该进度:https : //github.com/postmanlabs/postman-app-support/issues/1669

我建议使用另一个软件包插件,例如:

the best (like postman , but profile and sync price 5$ monthly):
   https://insomnia.rest/
others:
   https://github.com/andev-software/graphql-ide
   https://github.com/imolorhe

对于graphiql(没有添加标头的可能性),您需要设置三件事(键入不容易):

  1. 标头:

    内容类型:application / json

  2. 身体:

    选择Ray <选项组

    选择JSON(application / json)<选择框

  3. 用“查询”和图形查询的“值”组成javascript对象。像js中的所有对象一样,它需要属性和值,在这种情况下,“ quote”是属性,该值必须带有双引号。在值(图形字符串)内部,您不需要编写js对象,因此您不需要使用双引号,它只是一个字符串。

    {“ query”:“ {allQuotes {text}}”}

    问题是您需要在一行中键入所有内容,不像grapIql ...在邮递员github中有一个职位要求,因此使用graphql很容易:

在此处输入图片说明

在此处输入图片说明


9

邮递员刚刚在7.2版中发布了内置的GraphQL支持

此版本支持

  • 在请求主体中将GraphQL查询作为POST请求发送
  • 支持GraphQL变量
  • 使用GraphQL模式类型在Postman中创建API
  • 与用户定义的GraphQL模式集成的查询自动完成

请尝试一下,并在社区论坛上为我们提供有关跟踪主题的反馈


9

UPDATE 8-2019-我知道这很旧,但是关于POSTMAN,如果您还没有弄清楚,他们确实有graphql(beta)选项用于发布正文。无需添加任何其他标题。

在此处输入图片说明


8

当我尝试在中使用graphQl查询时,我遇到了同样的问题POSTMAN。在POSTMAN中,从raw选项卡中使用json类型发送数据。

查询命令:

{"query":"{user(id:902){id,username,DOB}}"}

变异命令:

{ "query": "mutation {createMutations(reviewer:36, comments:\"hello\",data_id: 1659, approved: true ){id}}" }

       #commnent: String Type
       #data_id:Int Type
       #approved:Boolean Type


3

源自EstevãoLucas的回答

您还可以Content-type: application/json在邮递员上使用标头

并定义主体:

{
    "query": "{ your_query }"
}

这很容易在客户端构建以形成请求有效负载。

例如

在此处输入图片说明

输出:

在此处输入图片说明



0

检出https://github.com/hasura/graphqurl-GraphQL的curl:

  • 使用自动完成功能进行GraphQL查询的CLI
  • 针对任何端点在本地运行GraphiQL(具有自定义标头)
  • 用作Node.js或浏览器中的库
  • 支持订阅

我是作者之一。

gq https://gentle-anchorage-72051.herokuapp.com/v1alpha1/graphql -i

带标题的GraphiQL



-2

通过添加标题,我们可以在邮递员中运行graphql查询

Content-type: application/graphql

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.