前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初步接触GraphQL

初步接触GraphQL

作者头像
frontoldman
发布2019-09-02 17:19:36
5260
发布2019-09-02 17:19:36
举报
文章被收录于专栏:樯橹代码樯橹代码樯橹代码

GraphQL

什么是GraphQL

Facebook开源的一个数据查询语言

1、GraphQL是一门语言,有自己的语法,这点和其他编程语言是类似的 2、GraphQL是一个runtime,可以认为它是一个运行在服务器上的可以理解和响应使用GraphQL语言的请求应用程序,类似一个服务端的GraphQL翻译

GraphQL的意义

RESTful Api的弊端随着应用的扩展,被逐渐放大,比如接口调用次数增多,耗时太长。每个接口做单独的开发却又古老而不合时宜。所以GraphQL的出现是为了更好的降低数据之间的网状关系带来的开发复杂度。

如何使用

一个简单的GraphQL的语法案例如下,就是一个输入格式如下(不是JSON

    {
        user(id: 42) {
            firstName
            lastName
            email
        }
    }

会被转换成如下输出

    {
         "data": {
             "user": {
                 "firstName": "John",
                 "lastName": "Doe",
                 "email": "john@example.com"
             }
         }
    }

这可以看做是一次请求响应的过程

一个查询定义如下

const queryType = new GraphQLObjectType({
         name: 'RootQuery',
         fields: {
             hello: {
             type: GraphQLString,
             resolve: () => 'world'
         }
     }
});

const mySchema = new GraphQLSchema({
     query: queryType
});

const inputQuery = `{ hello }`

graphql(mySchema, inputQuery).then(result => {
     console.log('Server Answer :', result.data);
});

打印log如下

Server Answer : { hello: 'world' }

GraphQL内置一些基础数据类型,然后可以自定义复杂数据类型,数据类型之间可以互相嵌套和引用,这就可以组成可配置的数据结构

GraphQL是一门强类型的语言,每个字段都必须要要有严格的格式约束

这门语言有很多种编程语言的实现,graphql.js就是其中一种

对于前端而言,最简单的使用过程就是拼接上文的hello这样子的Query,来查询数据

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GraphQL
    • 什么是GraphQL
      • GraphQL的意义
        • 如何使用
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档