graphql 后台服务项目架构(一)
基础知识
简而言之,GraphQL 是一种描述如何请求数据的语法,通常用于客户端向服务器请求数据。GraphQL 有三个主要特点:
- 允许客户端精确指定所需数据。
- 可以更容易地从多个数据源聚合数据。
- 使用类型系统描述数据。

相关的信息可以去官网了解 http://graphql.cn/
这篇博客的文章主要目的是使用的graphql服务了解搭建一个真实项目基本结构,使用到的基本技术如下:
- 基于Nodejs,Typescript, Express
- 数据库使用了Mongodb和Mysql
- apollo-server,
项目结构信息如下图:

模块大概功能介绍:
- common: 一些公用的功能如自定义的graphql scalar 文件上传,文件管理,文件服务
- gql-system: 系统的一些表数据操作
- gql-system/system.gql: 把gql-system下的所有gql文件集合导出
- gql-system/system.resolver.ts: 把gql-system下的所有reolver文件集合导出
- gql-system/user: 用户数据表操作,resolver 实现user.gql里面Query和Mutation的功能,user.gql代表Schema,user.ts是mongodb 的模型
- gql-game: 一个整体的数据操作,相当于把相关表的数据的功能组织在一起同上
- gql-mall:同上
- base.gql 基础 scheam
- resolvers.ts 基本resolver组合其它resolve
- schema.ts 基本的schema 组合其它schema
- gql-system/user文件里面各文件相关功能(基本关系,user.gql描述文件,然后resolver实现功能,user.ts只是mondodb的模型):
以上是项目基本结构和基本代码功能,最终的项目效果图如下:
地址:http://localhost:8080/playground

地址:http://localhost:8080/voyage

源码地址:https://files.cnblogs.com/files/lslgg/base-server.zip
ps:因为是mongodb 所以运行项目以后直接先添加用户,然后登录以后就可以操作其它表了。
graphql 后台服务项目架构(一)的更多相关文章
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
项目开发中的一些注意事项以及技巧总结 1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...
- vue,vuex的后台管理项目架子structure-admin,后端服务nodejs
之前写过一篇vue初始化项目,构建vuex的后台管理项目架子,这个structure-admin-web所拥有的功能 接下来,针对structure-admin-web的不足,进行了补充,开发了具有登 ...
- Spring Cloud分布式微服务云架构集成项目
Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Clo ...
- springboot的maven多模块项目架构微服务搭建——依赖方式的多模块演化为微服务项目
在上一篇依赖方式多模块的基础上对项目进行改造.主要改造user-service项目,service要配置mapper.mybatis及数据库相关的东西,后面的接口消费方user就不再需要了 注意:以下 ...
- springboot的maven多模块项目架构微服务搭建——构建多模块项目(依赖方式)
总想对微服务架构做一个小小的总结,不知如何下手,最近觉得还是从搭建微服务的过程来入手,对于springboot的maven项目从构建多模块架构进而衍化为常用的微服务架构来做个记录吧. 首先,创建多个s ...
- API设计风格(RRC、REST、GraphQL、服务端驱动)
API设计风格(RRC.REST.GraphQL.服务端驱动) Web API设计其实是一个挺重要的设计话题,许多公司都会有公司层面的Web API设计规范,几乎所有的项目在详细设计阶段都会进行API ...
- Windows Azure 云服务角色架构
当我们使用VS发布一个Cloud Service或者在Portal上上传发布包后,就能启动和运行一个云服务,可以保护WebRole,WorkerRole的一个或者多个实例. Windows Azure ...
- 集成架构:对比 Web API 与面向服务的架构和企业应用程序集成(转)
http://kb.cnblogs.com/page/521644/ 摘要:总体上讲,SOA 和 Web API 似乎解决的是同一个问题:以实时的.可重用的方式公开业务功能.本教程将分析这些举措有何不 ...
- (转)集成架构:对比 Web API 与面向服务的架构和企业应用程序集成
摘要:总体上讲,SOA 和 Web API 似乎解决的是同一个问题:以实时的.可重用的方式公开业务功能.本教程将分析这些举措有何不同,以及如何将它们融入到一个不断演变的集成架构中.文中还将讨论 API ...
随机推荐
- UVALive 3645 时序模型
按航班拆点 注意返边的条件 #include<bits/stdc++.h> using namespace std; const int maxn = 1e6+11; const int ...
- 关于form组件的补充-------formChoice
form组件的Choice字段 还是基于出版社和书的模型来详解 models.py(模型) from django.db import models # Create your models here ...
- MySQL SQL_MODE详解
http://blog.itpub.net/29773961/viewspace-1813501/
- python3 enumerate()函数笔记
d={"A":"a","B":"b","C":"c","D" ...
- 事物及exec
事物3要出不多讲: 1.BEGIN TRANSACTION--开启事务 2.COMMIT TRANSACTION--事务执行 3.ROLLBACK TRANSACTION--事务回滚 俩总捕捉事物的方 ...
- CPU的CAS操作
https://blog.csdn.net/qq_35492857/article/details/78471032 https://www.cnblogs.com/gdjdsjh/p/5076815 ...
- js 实现继承的几种方式
//js中实现继承的几种方式 //实现继承首先要有一个父类,先创造一个动物的父类 function Animal(name){ this.name = name; this.shoot = funct ...
- PlayMaker Get Parent 拿到父物体
这里是拿到自己的父物体,然后存储到Parent这个GameObject变量里. 然后在Parent那个位置生成一个Coin,也就是在父物体那生成一个Coin.
- Murano Weekly Meeting 2015.10.20
Meeting time: 2015.October.20th 1:00~2:00 Chairperson: Serg Melikyan, PTL from Mirantis Meeting sum ...
- 搭建MHA
安装MySQL 5.7 yum源的配置文件如下 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysq ...