前后端都可以看一下的GraphQL GQL标准

2021-10-26 10:12:14 浏览数 (1)

什么是 GQL

GQLGraph Query Language, 它是一种图形查询语言。GraphQL是一个旨在简化前端和后端之间通信的规范。它主要由服务端的 schema 语言和客户端的查询语言组成。

GraphQL 是一种针对 Graph(图状数据)进行查询特别有优势的 Query Language(查询语言),所以叫做 GraphQL。它跟 SQL 的关系是共用 QL 后缀,就好像「汉语」和「英语」共用后缀一样,但他们本质上是不同的语言。GraphQL 跟用作存储的 NoSQL 没有必然联系,虽然 GraphQL 背后的实际存储可以选择 NoSQL 类型的数据库,但也可以用 SQL 类型的数据库,或者任意其它存储方式(例如文本文件、存内存里等等)。

详情可见 # GraphQL 中文官网 | 掘金翻译计划

简述

GraphQL主要是作用于数据接口,比如前端后端交互。是给客户端筛选自由获取服务端事先定义好的数据,提高了交互接口的灵活性。这些数据是从MySQL、NoSQL的库里面查出来,这就是关系吧。GraphQL本身不是数据库(知道这点就知道区别了),貌似也不具备聚合计算数据功能(这点我不确定),也不会直接操作数据库。

简单例子,后端使用了GraphQL之后,数据库查出来A,B,C,D四个字段,客户端需要数据的时候,你可以随意使用这四个字段的各种组合,只要A,C字段还是只要A,C,D字段等等,不再需要和服务端交流。

MySQL、NoSQL之类核心是为了储存数据,有储存自然有取出数据的查询。这是和GraphQL最主要功能区别。

简化后,GraphQL可以理解成一个灵活的ajax接口,mysql可以理解成一个储存数据的文件。最本质的区别。

外链参考:

  • GraphQL Introduction
  • GraphQL: A data query language
  • 来自 InfoQ 的采访:Facebook开源数据查询语言GraphQL
  • 来自官方的 Talks:GraphQL: Designing a Data Language

上手尝试

安装

代码语言:javascript复制
npm install graphql
复制代码

由于gql支持javascript,使用node 运行即可

代码语言:javascript复制
var { graphql, buildSchema } = require('graphql');
var schema = buildSchema(`
  type Query {
    hello: String
  }
`);

var root = { hello: () => 'Hello world!' };

graphql(schema, '{ hello }', root).then((response) => {
  console.log(response);
});

0 人点赞