一起动手用Postman试试GraphQL,看看能不能顺利调通接口啥的
- 问答
- 2026-01-19 22:07:25
- 3
咱们得有个能用的 GraphQL 接口地址,不能凭空瞎试,我找了个公开的、免费的用来测试的 GraphQL API,地址是 https://swapi-graphql.netlify.app/.netlify/functions/index,这个是星球大战(Star Wars)的 API,里面有很多电影、人物、星球的信息,拿来练手最合适不过了。(来源:公开的 SWAPI GraphQL API)
第一步:打开 Postman,创建一个新请求
这个没啥好说的,打开你的 Postman,点那个“New”按钮,然后选择“HTTP Request”,就会出来一个我们熟悉的界面,有请求方法(GET, POST)、请求地址(URL)那些。
第二步:设置请求方法和地址
这里是个关键点,GraphQL 通常都是通过 POST 请求来操作的,哪怕你只是想查询数据,首先把请求方法从默认的 GET 改成 POST。
然后把上面那个星球大战的 API 地址 https://swapi-graphql.netlify.app/.netlify/functions/index 粘贴到地址栏里。
第三步:设置请求头(Headers)
光有方法和地址还不够,我们得告诉服务器:“喂,我这次发给你的数据是 GraphQL 格式的哦,你按这个格式来理解。” 这就需要设置一个特殊的请求头。
点击 URL 地址栏下面的“Headers”标签,我们来添加两个键值对:
- Key:
Content-TypeValue:application/json这个很重要,意思是告诉服务器,我请求体(Body)里装的是 JSON 格式的数据。 - Key:
User-AgentValue: 可以随便写一个,PostmanGraphQLTest,有时候服务器会要求有这个头,写上保险点。
设置好之后,应该看起来像这样:
Content-Type | application/json
User-Agent | PostmanGraphQLTest

第四步:最重要的部分——写请求体(Body)
点击“Body”标签,然后选择“raw”,在旁边下拉菜单里选择“JSON”,现在这个大白框就是我们发挥的地方了。
GraphQL 的请求体就是一个 JSON 对象,它最核心的有两个字段:query 和 variables(变量我们先不管,今天就玩最简单的)。
query 字段的值是一个字符串,这个字符串里面就是我们用 GraphQL 查询语言写的“问题”,咱们来写第一个查询试试。
我们想查询一下星球大战里所有电影的标题和导演,在 GraphQL 里,这个查询语句长这样:
query {
allFilms {
films {
title
director
}
}
}
解释一下这句“咒语”:
query关键字表示这是一个查询操作。allFilms是我们要查询的一个“字段”,这个字段代表所有电影。films是allFilms下面的一个子字段,因为所有电影是个列表嘛。- 在
films里面,我们指定想要返回的具体信息,title)和director(导演),你想要什么就写什么,不写的它就不会返回,这叫“按需索取”,是 GraphQL 的一大优点。
我们要把这个查询语句放到 Postman 的 Body 里,注意,它是作为 JSON 中一个字符串的值存在的,完整的 Body 应该是:

{
"query": "query { allFilms { films { title director } } }"
}
为了好看,你也可以把它写成多行(Postman 支持),但记得要用引号包起来:
{
"query": "
query {
allFilms {
films {
title
director
}
}
}
"
}
(注意:在实际粘贴时,多行字符串可能需要确保没有多余的换行符错误,如果报错,就先缩成一行试试,但新版 Postman 对多行 JSON 字符串支持通常很好。)
第五步:点击“Send”发送请求!
激动人心的时刻到了!检查一下:
- 方法:POST
- URL:正确
- Headers:有
Content-Type: application/json - Body:是 Raw JSON,里面包含了我们的 query
没问题就大胆地点那个蓝色的“Send”按钮!
第六步:查看结果
如果一切顺利,你会在下面的响应体(Response Body)里看到一个 JSON 格式的结果,它应该长得像这样:

{
"data": {
"allFilms": {
"films": [
{
"title": "A New Hope",
"director": "George Lucas"
},
{
"title": "The Empire Strikes Back",
"director": "Irvin Kershner"
},
... // 还有其他电影信息
]
}
}
}
看!成功啦!服务器准确地返回了我们想要的两样东西:每部电影的标题和导演,结构非常清晰,和我们写的查询语句的形状是一模一样的。
再来试一个:查询特定人物
光查电影不过瘾,我们试试查个人物,我们想看看卢克·天行者(Luke Skywalker)的身高和出生星球叫什么名字。
查询语句可以这样写:
query {
person(personID: "1") {
name
height
homeworld {
name
}
}
}
这里新东西是 person(personID: "1"),括号里的就是传递参数,表示我要查询 ID 为 1 的人物。homeworld 又是一个对象,所以我们继续点出里面的 name 字段。
同样,把这个查询放到 Body 的 query 字符串里:
{
"query": "query { person(personID: \"1\") { name height homeworld { name } } }"
}
(注意:如果字符串里本身有双引号,需要用反斜线 \ 转义,写成 \",用上面那种多行格式写就不需要转义,会更方便。)
再点击“Send”,你应该会得到卢克的信息,包括他的名字、身高,以及他的家乡星球的名字“Tatooine”。
好了,到这里,我们已经用 Postman 成功调通了两个 GraphQL 查询接口了!整个过程其实就是:用 POST 方法,发一个带有 query 字段的 JSON 到指定地址,你可以随意修改查询语句,要什么数据就写什么字段名,体验一下 GraphQL 这种“精准查询”的灵活性,试试把 height 去掉,或者加上 eyeColor(眼睛颜色),看看返回的结果有什么不同,玩得开心!
本文由召安青于2026-01-19发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/83912.html
