基础知识

简而言之,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 后台服务项目架构(一)的更多相关文章

  1. 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获

    项目开发中的一些注意事项以及技巧总结   1.jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View().PartialView()等,只能返回json以 ...

  2. vue,vuex的后台管理项目架子structure-admin,后端服务nodejs

    之前写过一篇vue初始化项目,构建vuex的后台管理项目架子,这个structure-admin-web所拥有的功能 接下来,针对structure-admin-web的不足,进行了补充,开发了具有登 ...

  3. Spring Cloud分布式微服务云架构集成项目

    Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Clo ...

  4. springboot的maven多模块项目架构微服务搭建——依赖方式的多模块演化为微服务项目

    在上一篇依赖方式多模块的基础上对项目进行改造.主要改造user-service项目,service要配置mapper.mybatis及数据库相关的东西,后面的接口消费方user就不再需要了 注意:以下 ...

  5. springboot的maven多模块项目架构微服务搭建——构建多模块项目(依赖方式)

    总想对微服务架构做一个小小的总结,不知如何下手,最近觉得还是从搭建微服务的过程来入手,对于springboot的maven项目从构建多模块架构进而衍化为常用的微服务架构来做个记录吧. 首先,创建多个s ...

  6. API设计风格(RRC、REST、GraphQL、服务端驱动)

    API设计风格(RRC.REST.GraphQL.服务端驱动) Web API设计其实是一个挺重要的设计话题,许多公司都会有公司层面的Web API设计规范,几乎所有的项目在详细设计阶段都会进行API ...

  7. Windows Azure 云服务角色架构

    当我们使用VS发布一个Cloud Service或者在Portal上上传发布包后,就能启动和运行一个云服务,可以保护WebRole,WorkerRole的一个或者多个实例. Windows Azure ...

  8. 集成架构:对比 Web API 与面向服务的架构和企业应用程序集成(转)

    http://kb.cnblogs.com/page/521644/ 摘要:总体上讲,SOA 和 Web API 似乎解决的是同一个问题:以实时的.可重用的方式公开业务功能.本教程将分析这些举措有何不 ...

  9. (转)集成架构:对比 Web API 与面向服务的架构和企业应用程序集成

    摘要:总体上讲,SOA 和 Web API 似乎解决的是同一个问题:以实时的.可重用的方式公开业务功能.本教程将分析这些举措有何不同,以及如何将它们融入到一个不断演变的集成架构中.文中还将讨论 API ...

随机推荐

  1. HDU计算机学院大学生程序设计竞赛(2015’12)The Magic Tower

    Problem Description Like most of the RPG (role play game), “The Magic Tower” is a game about how a w ...

  2. 三嫖客之awk

    awk '{h[$1]++}END{for(pol in h)print pol,h[pol]}' access.log |sort -rnk2|head awk -F: -vOFS=":& ...

  3. IOS 11 永不升级方法

    解决一直跳苹果升级提示终极解决方法:安装方法很简单,1:进设置-通用-存储空间与iCloud用量-管理储存空间.选择ios xxx 点击他,点删除[如果没有就略过]2:点击:https://oldca ...

  4. Socket 代码收藏

    class SocketHelper    {        public delegate void Uplistbox(string txt);        public Uplistbox u ...

  5. Alibaba Java Coding Guidelines 安装(eclipse)并简单使用

    源码地址:https://github.com/alibaba/p3c 1.安装 第1步.help >> Instakll New Software... 第2步.在Work with中输 ...

  6. SQL Server外部链接时报错:Error locating serverInstance specified

    SQL Server外部链接时报错:Error locating server/Instance specified 连接时报错信息: 08001 sql server network interfa ...

  7. 6-----BBS论坛

    BBS论坛(六) 6.1.优化json数据的返回 (1)新建utils/restful.py # utils/restful.py from flask import jsonify class Ht ...

  8. win安装wordcloud报错解决方案

    可以知道需要安装的是32位系统上的python 3.6.5版本的 ②登陆 https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 网址找到相应文件 ...

  9. docker 设置固定ip、配置网络

    Docker安装后,默认会创建下面三种网络类型 $ docker network ls NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge ...

  10. 查看Python支持的.whl文件版本

    AMD64 import pip._internal print(pip._internal.pep425tags.get_supported()) WIN32 import pip print(pi ...