面向Java开发者的GraphQL初学者指南

GraphQL是什么

        GraphQL是什么,它是哪来的,点击here可以知道,如果英文不好,可以看这里。简单一点说,它是Facebook觉得REST不够好,所以搞了这个,方便Client向Server要数据用的。官方的定义是"GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data."。如何理解这个定义呢?

         a query language for APIs ===> 一套查询语言,用于 API调用。Server端提供Client端API,通过这些API,Client和Server间通过GraphQL来进行数据查询交流

        a runtime for fulfilling those queries with your existing data ===> 一套用现有数据填充那些查询的运行环境。在这个运行环境中,Server能够处理Client端发来的用GraphQL表达的请求,并且返回所查询数据。

        具体来说如下几个步骤:

  1. Server开发人员学习了GraphQL Spec后,按照它的语法写出了Schema,这个Schema告诉Client开发人员它能提供什么数据。
  2. Server开发人员也按照GraphQL Spec写了个解释程序,这个程序可以解析从Client端发过来的符合GraphQL规范的Request,
  3. Client开发人员也同样学习了GraphQL Spec,同时他看了Server提供的Schema,
  4. 根据这个Schema,用GraphQL规定的格式,Client开发人员写了一个Request发给Server端,
  5. Client端从Server端那里拿到了想要的数据。

                

如果你想更好的理解GraphQL,建议看一下官网的FAQ,从而更好的理解它是什么,它不是什么。

资源

资源说明
https://graphql.orgGraphQL官网
https://spec.graphql.orgGraphQL规范
SWAPI GraphQL API

可以练习编写GraphQL的request。在编辑框内,按住"Shift+空格"会跳出代码提示

https://graphql.cnGraphQL的中文官网
GraphQL · GitHubhttps://graphql.org对应的Github
https://www.graphql-java.comGraphQL解析器的Java语言实现官网,上述图中2的一种实现
GraphQL Java · GitHubgraphql-java官网
graphql-playground专门用于发送GraphQL Request的客户端。可以理解为GraphQL专用Postman

Hello World

        在这个章节,通过完成一个“Hello World”项目来建立起后续更复杂GraphQL项目的起点。

        每完成一步大的修改,就会提交到study-graphql-guide上,所以通过查看提交记录,就能了解如何从最初一步步开始建立整个项目。

        Spring已经提供了Spring for Graphql来给我们使用,所以我们的Hello GraphQL项目基于Spring。同时graphql-javatutorialsbook-details项目也有很多代码可以借鉴。

  1. 建立初始项目
    打开https://start.spring.io/,按照如下图所示配置,然后点击 "GENERATE" 。   
    代码提交记录:从spring initializr创建spring for graphql项目     
  2. 定义、注册schema及绑定DataFetcher
    从 book-details 拷贝 schema.graphqls、GraphQLProvider.java 和 GraphQLDataFetchers.java,修改pom.xml。
    代码提交记录:定义、注册schema及绑定DataFetcher
    注意,这里pom.xml中,graphql-java-spring-boot-starter-webmvc要用2.0
  3. 实现"Hello World"
    在schema.graphqls中增加"say_something" Query,并且绑定DataFetcher。
    代码提交记录:实现"Hello World"
  4. 编译运行
    cd <项目所在目录>
    mvn clean compile package
    java -jar ./target/study-graphql-guide-0.0.1-SNAPSHOT.jar

验证

        这里使用上述"资源"中提到的graphql-playground来进行验证。

        安装完毕,打开应用,在如下界面,选择

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值