graphQL-java实战(三)-graphiql
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参数了,格式如下