我用
POST type
URL http://######/graphql
Body:
query: "query: "{'noteTypes': {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"
但是它返回 “ message”:“必须提供查询字符串”。
Answers:
有一种使用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。
在请求的正文中,为有效负载放置一个占位符。
{
"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
}
}
}
}
}
}
`
));
而已。
使用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(没有添加标头的可能性),您需要设置三件事(键入不容易):
标头:
内容类型:application / json
身体:
选择Ray <选项组
选择JSON(application / json)<选择框
用“查询”和图形查询的“值”组成javascript对象。像js中的所有对象一样,它需要属性和值,在这种情况下,“ quote”是属性,该值必须带有双引号。在值(图形字符串)内部,您不需要编写js对象,因此您不需要使用双引号,它只是一个字符串。
{“ query”:“ {allQuotes {text}}”}
问题是您需要在一行中键入所有内容,不像grapIql ...在邮递员github中有一个职位要求,因此使用graphql很容易:
邮递员刚刚在7.2版中发布了内置的GraphQL支持。
此版本支持
- 在请求主体中将GraphQL查询作为POST请求发送
- 支持GraphQL变量
- 使用GraphQL模式类型在Postman中创建API
- 与用户定义的GraphQL模式集成的查询自动完成
当我尝试在中使用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
如果您使用的是Visual Studio,我已编写了一个插件将GraphQL转换为Restful body
https://marketplace.visualstudio.com/items?itemName=orasik.graphql-to-rest-queries
您还可以Content-type: application/json
在邮递员上使用标头
并定义主体:
{
"query": "{ your_query }"
}
这很容易在客户端构建以形成请求有效负载。
例如
输出:
Postman最近推出了对GraphQL的开箱即用支持:https ://blog.getpostman.com/2019/06/18/postman-v7-2-supports-graphql/
下面是在本地测试GraphQL的屏幕截图:
注意:使用spring-boot https://www.baeldung.com/spring-graphql在本地运行GraphQL
检出https://github.com/hasura/graphqurl-GraphQL的curl:
我是作者之一。
gq https://gentle-anchorage-72051.herokuapp.com/v1alpha1/graphql -i
如果可以传递标题类型,则添加标题Content-type:application / graphql
以下链接可用作参考: 此处的链接说明