GraphQL入门体验

135 阅读1分钟

一、什么是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.jsApollo Server来简单的搭建一个node.js的web框架。

1、创建一个新的项目

1.在你的workspace里新建一个文件夹,然后再终端中打开它;

    mkdir graphql
    cd graphql

2.使用一个包管理器来管理你的项目;

yarn init

1647706718.png 现在你的目录结构应该是这样的:

1647706018.png

2.安装依赖,并在项目目录下创建一个index.js文件

打开终端运行下面的命令来下载apollo-servegraphql依赖

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将服务器跑起来。

1647706018.png

4、在ApolloServer里使用graphql查询你的数据

image.png

然后开始查询你的数据,点击Query your server 1647706034.pngOperation中,按照graphql的语法进行数据查询Data里面的title 输入

getData {
    title
  }

点击ExampleQuery执行查询

1647706042.png 再查询另外一个数据main

getData {
    title
    main
  }

1647706048.png