GraphQL 入门

在接下来的一系列文章中,我们会了解 GraphQL 是什么,它是如何运作以及如何使用它。在找如何搭建 GraphQL 服务的文档?这有一些类库可以帮你用多种不同语言实现 GraphQL。通过实用教程深入学习体验,请访问 How to GraphQL 全栈教程网站。我们还与 edX 合作创建了免费的在线课程,探索 GraphQL:一种用于 API 的查询语言。

GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

一个 GraphQL 服务是通过定义类型和类型上的字段来创建的,然后给每个类型上的每个字段提供解析函数。例如,一个 GraphQL 服务告诉我们当前登录用户是 me,这个用户的名称可能像这样:

type Query {me: User
}type User {id: IDname: String
}

一并的还有每个类型上字段的解析函数:

function Query_me(request) {return request.auth.user;
}function User_name(user) {return user.getName();
}

一旦一个 GraphQL 服务运行起来(通常在 web 服务的一个 URL 上),它就能接收 GraphQL 查询,并验证和执行。接收到的查询首先会被检查确保它只引用了已定义的类型和字段,然后运行指定的解析函数来生成结果。

例如这个查询:

{me {name}
}

会产生这样的JSON结果:

{"me": {"name": "Luke Skywalker"}
}

在这系列文章中,我们会学习更多关于 GraphQL 的知识,包括查询语言、类型系统、GraphQL 服务的工作原理以及使用 GraphQL 解决常见问题的最佳实践。

GraphQL 入门第一篇相关推荐

  1. GraphQL实战-第一篇-GraphQL介绍

    GraphQL实战-第一篇-GraphQL介绍 GraphQL的前世今生 Facebook的业务线有移动端,PC端和其它端,不同的场景下对一个资源所需要的信息是不同的.如移动端需要User的a.b.c ...

  2. ElasticSearch入门 第一篇:Windows下安装ElasticSearch

    这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  3. Redis入门第一篇【介绍、安装】

    tags: Redis title: Redis入门第一篇[介绍.安装] 为什么要用Redis 我对Redis的简单理解:Redis相信学JavaEE的同学都听过这个名词,它是一个缓存数据库. Red ...

  4. ps基础教程新手入门第一篇:ps界面的介绍

    欢迎来到慕恬瑶平面设计,今天给大家介绍PS基础教程新手入门第一篇: ps界面的介绍.目的让第一次接触ps的小伙伴通过ps基础教程新手入门来了解ps界面的菜单栏,工具栏已方便日后使用. 首先,打开PS ...

  5. SDN入门第一篇——Ubuntu16.04安装mininet-wifi

    SDN入门第一篇--Ubuntu16.04安装mininet-wifi 最近因为项目需要,需要使用mininet搭建SDN仿真平台,mininet-wifi除了包含基本的mininet功能之外还包括引 ...

  6. kaggle新手入门第一篇——Titanic

    Titanic作为Kaggle官方网站的第一篇入门比赛,如果你想学习kaggle,那么从它开始无疑是比较好的一个选择. 首先贴一下网址:https://www.kaggle.com/c/titanic ...

  7. GraphQL入门基础篇教程

    历史        GraphQL是由Facebook创造的. 当时,Facebook想在移动端实现新闻推送,这不像检索一个故事.作者.故事的内容.评论列表和喜欢该文章的人这么简单,而是每个故事都相互 ...

  8. Android JNI入门第一篇——HelloJni

    android支持使用NDK开发C程序,关于配置NDK环境问题应该不用再赘述了,这个网上有很多,这里通过一篇实例来讲述简单的JNI开发,大家可以参考这篇文章(Get Your Eclipse-Inte ...

  9. ebs开发入门 oracle 知乎_微信小程序云开发入门第一篇---开发准备事项

    在开始本文的正式内容之前,先允许我做一个简单的自我介绍,我是一名嵌入式软件开发人员,目前在一家音视频处理芯片公司做linux系统下音视频开发的相关工作,算是嵌入式软件开发行业的老人了,如果您对嵌入式行 ...

最新文章

  1. Web开发人员必读的12个网站
  2. 我怎样才能参加比特币现金9月1日压力测试?
  3. Window Mobile SmartPhone智能手机软件开发vs2005 简体中文版 设置指南!
  4. loadrunner目录分析
  5. 已解决:Windows下Anaconda3卸载+下载+安装教程+tensorflow+keras+jupyternotebook
  6. 160个Crackme031之一元二次方程
  7. web第五章 json
  8. Android 高级Drawable资源---复合Drawable----状态列表Drawable
  9. SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上
  10. java 布隆过滤器_什么是布隆过滤器(Bloom Filter)?
  11. 第8章 硬盘和显卡的访问与控制
  12. xamarin怎么调用java的_XamarinSQLite教程在Xamarin.Android项目中使用数据库
  13. Node 实现 AES 加密,结果输出为“byte”。
  14. big5码在线转换_【开源】基于 SpringBoot 的 web kettle 在线采集平台
  15. 自动轨迹绘制的python代码_python 自动轨迹绘制的实例代码
  16. httpModule一些细节
  17. python入门基础知识实例-Python入门基础知识实例,
  18. 【福利派送】高质量AI书籍免费送给大家
  19. MySql Binlog初识
  20. [转+]C语言复杂声明

热门文章

  1. java 中while编译之后_从APK反编译的Java-while循环什么也不做
  2. appcan+html查看效果,appcan常用的窗口方法
  3. php 新闻列表,php原生开发新闻站之新闻列表(二)
  4. python list 去重_Python中对列表list去重
  5. Second Week: Git与Github的使用
  6. 一文深入理解协同过滤
  7. pymysql 写入数据
  8. webpack打包vue反编译_2020年你必须知道的webpack打包优化方法
  9. 知识图谱学习笔记-Cypher语句使用
  10. 开启大数据时代谷歌三篇论文-Mapreduce