GraphQL
引用官方文案来理解一下GraphQL的特点:
- 一种用于 API 的查询语言
- 向你的 API 发出一个 GraphQL 请求就能准确获得你想要的数据,不多不少。
- 获取多个资源,只用一个请求
- 描述所有的可能,类型系统
- GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
rest API ? graphQL ?
-
REST的一些不足
- 扩展性,单个RESTful接口返回数据越来越臃肿 - 某个前端展现,实际需要调用多个独立的RESTful API才能获取到足够的数据
??区别
-
REST 以资源为核心,是多入口的,服务端定义资源形式 ,每个资源对应一个 URL,例如:
http://api.test.com/books/
,http://api.test.com/users/
-
GraphQL 只需要改变查询内容,前端就能定制服务器返回的响应内容
GraphQL 是单入口的,所有的请求通过同一个 URL 进入服务器,例如:
http://api.test.com/graphql
先通过一个例子来热热身,练练手,了解其中的奥妙
-
step 1 :
安装依赖包:
npm install --save -D express express-graphql graphql
-
step 2 :
在根目录下创建一个启动文件 server.js
//get all the libraries needed
const express = require('express');
const graphqlHTTP = require('express-graphql');
const {
GraphQLSchema} = require('graphql');
const {
queryType} = require('./query.js');
//setting up the port number and express app
const port = 5000;
const app = express();