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

时间:2017-02-28 23:32:27

标签: graphql postman

我用

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

但它又回来了 " message":"必须提供查询字符串。"

14 个答案:

答案 0 :(得分:114)

使用REST客户端Insomnia

可以有更好的方法

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

以下是邮递员的步骤

第1步。

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

enter image description here

第2步。

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

enter image description here

第3步。

打开邮递员,在左上角单击Import按钮后,点击Import后,您必须点击Paste Raw Text,然后粘贴复制的cURL请求完成后,在步骤2中完成后,单击Import

enter image description here

第4步。

Postman已准备好发送Graphql请求,只需点击Send按钮,您就会在主体的响应框中看到Response,如下所示

enter image description here

第5步。

要查看查询的发送方式,请点击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 }}}}}"
}

<强> ============================================ ===============================

enter image description here

您可以直接从step 5开始,如果您知道如何在邮递员发出请求时需要在正文和其他内容中发送查询

enter image description here

使用简化的JSON

enter image description here

答案 1 :(得分:37)

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

就这样做:

在标题标签中: Content-Type: application/graphql

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

enter image description here

答案 2 :(得分:23)

为搜索主题的任何人添加此内容...您可以使用Insomnia更好,更轻松地利用和测试GraphQL调用:

https://insomnia.rest

对于GraphQL开发来说非常棒。

答案 3 :(得分:19)

这是一种简单的方法。使用预请求脚本对有效负载进行字符串化(source)。

第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 :(得分:11)

更新2:

它不实用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. 部首:

    Content-Type:application / json

  2. 身体:

    选择Ray&lt;选项组

    选择JSON(application / json)&lt;选择框

  3. 使用&#34;查询&#34;撰写javascript对象和&#34;价值&#34;你的图表查询。就像js中的所有对象一样,它贬低了属性和价值,在这种情况下&#34;引用&#34;是属性,值必须是双引号。在值(graphl字符串)中你不构成js对象,所以你不需要使用doble引号,它只是一个字符串。

    {&#34; query&#34;:&#34; {allQuotes {text}}&#34; }

    问题是你需要在一行中键入all,不像grapIql ... postman github中有一个帖子要求所以很容易使用graphql:

  4. enter image description here

    enter image description here

答案 5 :(得分:7)

当我尝试使用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

答案 6 :(得分:4)

邮递员刚刚发布了7.2版的inbuilt GraphQL support

  

此版本支持

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

请尝试一下,并向我们提供有关our community forum上的跟踪线程的反馈

答案 7 :(得分:2)

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

enter image description here

答案 8 :(得分:1)

源自Estevão Lucas' answer

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

并使用以下内容定义主体:

{
    "query": "{ your_query }"
}

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

例如

enter image description here

输出:

enter image description here

答案 9 :(得分:0)

结帐https://github.com/hasura/graphqurl-卷曲GraphQL:

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

我是作者之一。

connection reset by peers

GraphiQL with headers

答案 10 :(得分:0)

如果您使用的是Visual Studio,我已编写了一个插件将GraphQL转换为Restful主体

https://marketplace.visualstudio.com/items?itemName=orasik.graphql-to-rest-queries

enter image description here

答案 11 :(得分:0)

如果我们可以传递标题类型,则添加标题 Content-type:application / graphql

下面的链接可用作参考: link description here

答案 12 :(得分:0)

Postman最近推出了对GraphQL的开箱即用支持:https://blog.getpostman.com/2019/06/18/postman-v7-2-supports-graphql/

下面是在本地测试GraphQL的屏幕截图:

enter image description here

注意:使用spring-boot https://www.baeldung.com/spring-graphql

在本地运行GraphQL

答案 13 :(得分:-2)

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

Content-type: application/graphql