资讯专栏INFORMATION COLUMN

初步接触GraphQL

Alfred / 2911人阅读

摘要:每个接口做多带带的开发却又古老而不合时宜。所以的出现是为了更好的降低数据之间的网状关系带来的开发复杂度。

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,来查询数据

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/82640.html

相关文章

  • 专治前端焦虑的学习方案

    摘要:不过今天我希望能够更进一步,不仅仅再抱怨现状,而是从我个人的角度来给出一个逐步深入学习生态圈的方案。最后,我还是想提到下对于的好的学习方法就是回顾参照各种各样的代码库,学习人家的用法与实践。 本文翻译自A-Study-Plan-To-Cure-JavaScript-Fatigue。笔者看到里面的几张配图着实漂亮,顺手翻译了一波。本文从属于笔者的Web Frontend Introduc...

    codeGoogle 评论0 收藏0
  • 用Gatsby和Strapi创建一个静态博客(翻译和自己探索过程中的经验总结)

    摘要:用和创建一个静态博客翻译和自己探索过程中的经验总结原文参阅或本篇主要是对其精华内容进行翻译以及实操过程中遇到的问题解决和探索一些具体的操作步骤和细节我将忽略结合原文一起阅读效果更佳注本文操作环境是介绍这是一个包含很多静态内容页面的站点从技术 用Gatsby和Strapi创建一个静态博客(翻译和自己探索过程中的经验总结) 原文参阅: Building a static blog usin...

    lijy91 评论0 收藏0
  • Graphql实践——像axios一样使用Graphql

    摘要:初始化项目使用初始化项目安装项目结构如下接口所有接口对封装接下来对进行封装,加上中间件实现类似于拦截器的效果。 Graphql尝鲜 在只学习graphql client端知识的过程中,我们常常需要一个graphql ide来提示graphql语法,以及实现graphql的server端来进行练手。graphql社区提供了graphiql让我们使用 graphiql (npm):一个交互...

    mumumu 评论0 收藏0
  • Notadd PHP 到 Node 版 初步体验与测试

    摘要:另外,团队更加友好的类型检查极大方便了后端的开发。初步的性能测试无读写操作的接口响应时间在本地,读写操作接口响应时间在,已经远低于之前版本的。并发量预估也会有不小的提升。 2.0-alpha1 预览版本 这个版本主要用于预览后台,一些接口还没对接。 Adonis.js 到 Nest.js AonisJS 是一个 Node.js 版的 Laravel ,起初是打算用 AdonisJS,...

    JinB 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<