# dgraph_graphql_module **Repository Path**: wisgon/dgraph_graphql_module ## Basic Information - **Project Name**: dgraph_graphql_module - **Description**: graphql的超简单部署应用,让你以后从此摆脱后端curd,让前端不用学后端就可以做全栈 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2020-11-24 - **Last Updated**: 2023-03-03 ## Categories & Tags **Categories**: api-gateway **Tags**: None ## README # dgraph_graphql_module 本项目是 graphql 的超简单部署和开发,从此绝大部分需求都可**摆脱后端 curd**,后端工作量大减,前端**不用学后端**就可成为全栈!!!
## 简介 本项目使用 dgraph 图数据库,摆脱了传统关系型数据库的联表查询等复杂的查询方式,直接以图结构的节点和边的模型来储存数据和表示数据之间的关系,适合快速开发一些小项目,大项目的话,由于还没有和传统的关系型数据库做一个同样接口下的 io 性能测试,所以还不清楚大项目中,高并发高读写情况下 dgraph 的数据库能力,不过据 dgraph 官方描述是非常棒的,尤其是在大表的联表查询的时候,图数据库是完爆关系型数据库的,有兴趣的朋友可以自行测试一下; ### 项目内容 本项目主要为使用 dgraph 图数据库的 graphql 语言提供一个简易的 todo-app 作为开发模板,包含了一个 go 语言写的 jwt 鉴权后端,和如何部署如何调试的文档,以及学习 dgraph 图数据库的 graphql 查询语言的语法的 md 文档,详细的 dgraph 图数据库的英文文档请移步[dgraph doc](https://dgraph.io/docs/graphql/)
#### 部署 - clone 本项目 ``` git clone --recursive https://gitee.com/wisgon/dgraph_graphql_module.git ```
- [安装 docker](https://docs.docker.com/get-docker/),安装完后,按照[部署文档](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/0-%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2.md)进行环境部署
- 安装 nodejs,npm,这个前端必备技能,就不多说了,作者这边的 node 版本是 v10.19.0,npm 版本是 6.14.4,大家可酌情安装对应版本,不一定要完全一样,差不多就行
#### 运行 - 如果是宝塔部署的,则进入 dgraphql_backend/bin 文件夹下,选择对应平台的 main_baota 可执行文件,执行,如果是 docker 的 nginx 容器部署的,则在部署环节已经运行了对应的 main_nginx 了;
- 运行前端: ``` cd vue-todo-app npm install npm run serve ``` 访问`localhost:8081`即可看到 todo-app 的主页,然后点 Rigest 注册用户、登陆,之后就可尝试添加 todo 了; **至此,尽情体验不用写后端接口的畅快吧**
效果图: ![todo-app](./learn_graphql/todo-app.png)
成功运行后,要先注册自己的帐号密码,然后注册名为`peter`和名为`others`的账号,密码随便,这样,才可以运行一些本项目的一些演示示例; #### 学习文档 - [起步](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/1-%E8%B5%B7%E6%AD%A5.md) - [schema 的设计](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/2-Schema%E7%9A%84%E8%AE%BE%E8%AE%A1.md) - [Api 初探](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/3-Api.md) - [mutation 详解](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/4-mutation%E8%AF%A6%E8%A7%A3.md) - [query 详解](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/5-query%E8%AF%A6%E8%A7%A3.md) - [认证和鉴权](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/6-%E8%AE%A4%E8%AF%81%E5%92%8C%E9%89%B4%E6%9D%83.md) - [todo-app 详解](https://gitee.com/wisgon/dgraph_graphql_module/blob/master/learn_graphql/7-todo-app-demo.md) #### 接下来的计划 - 添加用户彼此是 friend 的场景 demo,某个用户将 todo 变成 public,他的朋友可以看到 - 添加 graphql 的 subscribe(相当于 websocket,当监听的数据变化了,客户端可获得实时推送) - 做数据库测试,测一下相同的 io 条件下 dgraph 和 mysql 的性能差异 - jwt 的 token 过期后的处理 - 更多不同需求场景相应的 demo - dgraph 天生支持分布式,写 dgraph 分布式 md 文档以及示例 demo - 保持 dgraph 官方文档和本项目文档的同步,在作者做这个项目的时候,dgraph 图数据库也是在发展中的,其 graphql 功能也是今年 2020 年初刚推出不久,很多功能也在开发中,作者会持续保持对 dgraph 数据库官方文档的跟进,保持更新 - 多编程语言的 jwt 后台 谢谢大家的支持,如果觉得不错,不要忘记 star 和 fork 喔^\_^ 如果觉得本项目对大家有帮助,就请作者喝杯咖啡吧
![donate](./learn_graphql/donate.jpg)