- 注:本文稿基于Will Lyon在2019年10月的NODES 2019上发表的演讲整理修改后发表。
1、GRAND是什么?
GRANDstack是一个开发基于Neo4j图数据库应用的全栈框架,它基于GraphQL、React、Apollo和Neo4j Database 构建数据库应用程序。GraphQL是API层;React是一个JavaScript UI库,用于在Web、移动以及VR中创建用户界面;Apollo是一套工具和服务,它使在客户端和服务器上使用GraphQL更加容易;最后,Neo4j数据库是原生图数据库。
GraphQL是一种API查询语言,虽然它的名称里有Graph,其实它和图数据库没有关系;而且虽然它的名称里面有QL,它也不是一种数据库查询语言。GraphQL基于一个类型系统(Type Script),用来描述API中可用的数据,客户端应用仅请求相关数据,并且数据可以与查询相同的格式返回。
相比现有的RestfulAPI,GraphQL大大简化了API的定义和部署:仅需要简单几个GraphQL API/URL就可以描述Web服务提供的对多种数据内容的不同操作。使用类型系统的好处是把访问的数据的细节封装在了请求里面、而不是通过URL来区分。
GraphQL将应用的数据看做是一个“图”,即由关系连接起来的实体/节点。这也是它名称中Graph的来由。对于像Neo4j这样的原生图数据库来说,GraphQL有着特别的“亲切感”,因为