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 所以运行项目以后直接先添加用户,然后登录以后就可以操作其它表了。

posted @ 2018-04-13 15:00  smiles  阅读(4715)  评论(2编辑  收藏  举报