一、什么是GraphQL?
A query language for your APIGraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.
GraphQL是一门用于API的查询语言,同时也可以用来查询数据在运行时。
官方文档地址: graphql.org/
二、GraphQL体验
GraphQL自带有非常多的库,这里使用GraphQL.js和Apollo Server来简单的搭建一个node.js的web框架。
1、创建一个新的项目
1.在你的workspace里新建一个文件夹,然后再终端中打开它;
mkdir graphql
cd graphql
2.使用一个包管理器来管理你的项目;
yarn init
现在你的目录结构应该是这样的:
2.安装依赖,并在项目目录下创建一个index.js文件
打开终端运行下面的命令来下载apollo-serve和graphql依赖
yarn add apollo-server graphql
3.定义GraphQL Schema,并使用ApolloServer跑起来
打开index.js文件
const {ApolloServer, gql} = require('apollo-server');
//引入ApolloServer,gql
const typeDefs = gql` type Query { getData : Data } type Data { title: String main: String }`;
//定义Schema,type Query是graphql里的特殊类型,定义了每个graphql的查询入口
//type Data(自定义),定义数据里面的title和main以String的类型,在查询的时候,以String类型返回
const Data = { title: 'This is a hello world', main: 'Hello World',};
//定义服务器里面的数据内容
const resolvers = { Query: { getData: () => Data, }};
//ApolloServer的解析器,对查询后的结果进行返回和填充
const server = new ApolloServer({typeDefs, resolvers});
server.listen().then(({url}) => { console.log(` Server ready at ${url}`);});
//ApolloServer调用
保存到index.js后,打开terminal输入node index.js将服务器跑起来。
4、在ApolloServer里使用graphql查询你的数据
然后开始查询你的数据,点击Query your server
在
Operation中,按照graphql的语法进行数据查询Data里面的title
输入
getData {
title
}
点击ExampleQuery执行查询
再查询另外一个数据
main
getData {
title
main
}