【发布时间】:2017-07-20 03:03:09
【问题描述】:
我用
POST type
URL http://######/graphql
Body:
query: "query: "{'noteTypes': {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"
但它会返回 "message": "必须提供查询字符串。"
【问题讨论】:
我用
POST type
URL http://######/graphql
Body:
query: "query: "{'noteTypes': {'name', 'label', 'labelColor', 'groupName', 'groupLabel', 'imageUrl'}}"
但它会返回 "message": "必须提供查询字符串。"
【问题讨论】:
有一个更好的方法可以使用 REST 客户端 Insomnia
文档在这里,如何发送 graphql 查询:https://support.insomnia.rest/article/61-graphql
以下是邮递员的步骤
第 1 步。
在 Chrome 中运行 GraphiQL,打开 Chrome Dev Console,点击 Network 标签,然后从 graphiql 进行查询,当您进行查询时,network 标签将显示 graphql 请求...
第 2 步。
从graphql请求复制请求查询,选择Copy as cURL (cmd)
第 3 步。
打开 Postman,在左上角单击 Import 按钮,单击 Import 后,您必须单击 Paste Raw Text,然后将复制的 cURL 请求粘贴到步骤 2 中,完成后单击Import
第 4 步。
Postman 已准备好发送 Graphql 请求,只需单击 Send 按钮,您将在正文的响应框中看到 Response,如下所示
第 5 步。
要查看查询是如何发送的,请单击Headers 旁边的Body 选项卡,您将了解如何以 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 content-type 的原始类型。因此,查询必须是带引号的有效 JSON ".."
{
"query":"{viewer {user {edges {node {id jobId name }}}}}"
}
============================================== ================================
如果您知道如何在正文中发送查询以及向邮递员发出请求时需要的其他内容,则可以直接从 step 5 开始
使用简化的 JSON
【讨论】:
为搜索该主题的任何人添加此内容...您可以通过 Insomnia 更好、更轻松地利用和测试 GraphQL 调用:
对于 GraphQL 开发来说,这真是太棒了。
【讨论】:
有一个简单的方法来做到这一点。使用预请求脚本对负载进行字符串化 (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
}
}
}
}
}
}
`
));
就是这样。
【讨论】:
【讨论】:
使用 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(应用程序/json)
使用“查询”和图形查询的“值”组合 javascript 对象。像 js 中的所有对象一样,它需要属性和值,在这种情况下,“引号”是属性,值必须带有双引号。在值(graphl 字符串)内部,您不需要编写 js 对象,因此您不需要使用双引号,它只是一个字符串。
{"query":"{ allQuotes { text } }" }
问题是您需要在一行中输入所有内容,不像 grapIql...邮递员 github 中有一个帖子要求,因此使用 graphql 很容易:
【讨论】:
Postman 刚刚在 7.2 版本中发布了 inbuilt GraphQL support。
此版本支持
- 在请求正文中作为 POST 请求发送 GraphQL 查询
- 支持 GraphQL 变量
- 在 Postman 中使用 GraphQL 架构类型创建 API
- 与用户定义的 GraphQL 架构集成的查询自动完成
请试一试,并在our community forum上的跟踪线程上向我们提供反馈
【讨论】:
当我尝试使用graphQl 查询使用POSTMAN 时,我遇到了同样的问题,
在 POSTMAN 中,使用 json 类型从 raw 选项卡发送数据。
查询命令:
{"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 主体
https://marketplace.visualstudio.com/items?itemName=orasik.graphql-to-rest-queries
【讨论】:
Postman 最近推出了对 GraphQL 的开箱即用支持:https://blog.getpostman.com/2019/06/18/postman-v7-2-supports-graphql/
下面是本地测试GraphQL的截图:
注意:使用spring-boothttps://www.baeldung.com/spring-graphql在本地运行GraphQL
【讨论】:
你也可以在邮递员上使用标题Content-type: application/json
并用以下方式定义主体:
{
"query": "{ your_query }"
}
这很容易在客户端构建以形成请求负载。
例如
输出:
【讨论】:
credentials 具有password 和email 的属性。在这种情况下,您可能需要在您的突变中定义一个输入类型对象。并在查询中使用$input: <yourinputmutation>! 或类似名称。
结帐https://github.com/hasura/graphqurl - GraphQL 的 curl:
我是作者之一。
gq https://gentle-anchorage-72051.herokuapp.com/v1alpha1/graphql -i
【讨论】:
如果我们可以传递 header 类型,则添加 header Content-type: application/graphql
以下链接可以作为参考: link description here
【讨论】:
通过添加标题,我们可以在邮递员中运行 graphql 查询
Content-type: application/graphql
【讨论】: