PostGraphile实战-技术背景
技术背景
下面所列的是本项目中主要用到的技术和工具,以及你需要对它们掌握到什么程度才能顺利的阅读本文。
本文及相关代码在 macOS 下写作,如果你使用其他系统,下面的部分命令可能需要相应调整。
PostGraphile
PostGraphile 可以根据 PostgreSQL 数据库中的内容自动生成 GraphQL 接口。 开发人员设计好数据库中:表的结构、表之间的关系、用户的操作权限, PostGraphile 就能自动将这些关系映射到最终的 GraphQL 接口中。 表中的注释会被用于接口的说明,更有智能注释提供额外功能。 这被开发者称为 DDGD(Database-Driven GraphQL Development),即数据库驱动的 GraphQL 开发。
本文主要就是介绍这个工具,所以目前不要求你对它有所了解。
PostgreSQL
PostGraphile 只支持 PostgreSQL 数据库,并充分利用了它的强大能力。 比如通过行级权限实现细致的访问控制,通过触发器实现订阅等。
本文不要求你使用过 PostgreSQL ,但你必需要有最基本的数据库理论知识。 你可以从 这里下载到 PostgreSQL 的安装包,也可以通过自己熟悉的包管理工具安装它。
GraphQL
GraphQL 是一种用于接口的查询语言,其最大的特点是灵活,数据按需取用。 甚至将原先只能在服务器上通过 SQL 查询实现的联表等能力转移给了客户端。
本文会对它的基本使用进行介绍,想要详细掌握可以考虑阅读 Learning GraphQL 一书。
Node.js 与 Express
PostGraphile 本身使用 Node.js 编写,既可以作为独立的命令行工具使用, 也可以嵌入到 Express 应用中作为大系统的一个组成部分使用。
阅读本文需要你对 Node.js 与它的包管理工具 npm 有基本的了解。
nanographql
一个最轻量的 GraphQL 查询生成器,只负责生成请求 body 的功能,因此可以和各种请求库整合,且不受客户端类型的限制。既可以用在 H5 页面,也可以用在小程序等场合。
你不需要预先对其有所了解。
todomvc/vanilla-es6
本项目的主要目的是说明 PostGraphile 及相关技术的使用方法,为了便于理解,借用大家都熟悉的待办事项作为实例。 因为重点不在前端,所以这里是对现成的 Todo 项目进行改造,来对接 GraphQL 接口。
todomvc 是一个开源项目,用来比较各种前端框架的 Todo 实现,为了覆盖尽可能多的受众,我们采用 vanilla-es6 版本作为本项目演示的基础。