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

  • 相关阅读:
    Java IO/NIO
    LeetCode—— 两两交换链表中的节点
    LeetCode——合并K个排序链表
    LeetCode第201场周赛
    LeetCode第202场周赛
    LeetCode215. 数组中的第K个最大元素
    LeetCode213. 打家劫舍 II
    LeetCode212. 单词搜索 II
    LeetCode211. 添加与搜索单词
    LeetCode210. 课程表 II
  • 原文地址:https://www.cnblogs.com/lslgg/p/8178669.html
Copyright © 2011-2022 走看看