graphiql是一个graphql浏览器IDE,可以自动提示graphql语法是否正确,给出建议。
这对于刚开始学习graphql的同学是非常棒的工具。
一、graphiql依赖包
项目中用到的依赖包如下:
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>5.0.2</version>
</dependency>
<!-- 可视化调试工具 -->
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>5.0.2</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>5.2.4</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java</artifactId>
<version>15.0</version>
</dependency>
二、schema文件
schema文件跟上篇博客相同
# 定义查询接口, 一个schema文件中只能定义一个Query对象
type Query {
# 无参, 返回字符串
hello: String
# 字段参数且不能为空, 返回普通对象
bookById(id: ID!): Book
# 对象参数, 返回列表
books(book: BookInput): [Book]
}
# 定义修改接口
type Mutation {
hello: String
}
# 定义入参对象
input BookInput {
id: ID
name: String
}
#定义普通对象
type Book {
id: ID
name: String
pageCount: Int
author: Author
}
type Author {
id: ID
firstName: String
lastName: String
}
三、简单查询
启动项目
在URL输入:http://localhost:8081/graphiql
即可打开graphiql界面
在左侧面板输入query语句,可以进行美化,IDE也会给出一些建议。
如果语法正确,右侧面板即可给出查询结果。
四、自定义查询参数
如果不想将参数拼入query语句,而是想要传入参数,可以依照graphql的语法,编写自定义参数
如下图所示,在query中自定义了$bookId作为参数,此时在左下方的面板输入一个variable map,即可实现参数的自动传入。
五、在postman中使用graphql
如果不喜欢使用graphiql,postman也对graphql进行了支持,下面是简单的使用方式
六、传递对象参数,返回列表
如果query方法的参数是一个对象,那就真的需要使用variables参数了,格式如下