diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.js old mode 100644 new mode 100755 index f896218..0e264ca --- a/docs/.vitepress/config.js +++ b/docs/.vitepress/config.js @@ -34,7 +34,21 @@ export default defineConfig({ { text: "常见问题处理", link: "/frontend/other/issues" }, ] } - ] + ], + "/backend/":[ + { + text: "项目介绍", + items: [ + { text: "后端项目简介", link: "/backend/business/introduction" }, + ] + }, + { + text: "构建配置", + items: [ + { text: "项目构建", link: "/backend/build/build" }, + ] + }, + ], }, footer: { message: "内部资料,请勿外传", diff --git a/docs/backend/build/build.md b/docs/backend/build/build.md new file mode 100644 index 0000000..d8487cb --- /dev/null +++ b/docs/backend/build/build.md @@ -0,0 +1,17 @@ +# 运行微精弘程序 + +## 配置 + +在项目根目录下新建`config.yaml`,配置每个项目对应的yaml文件 + +## 如何开始 + +在项目根目录下执行 + +```bash +go build -o 项目名 +``` + +然后直接运行编辑出来的程序就行了 + +## Docker部署 \ No newline at end of file diff --git a/docs/backend/business/introduction.md b/docs/backend/business/introduction.md new file mode 100644 index 0000000..851eaf9 --- /dev/null +++ b/docs/backend/business/introduction.md @@ -0,0 +1,73 @@ +# 微精弘后端文档 + +## 风格规范说明 + +- 所有的文件/文件夹名采用小驼峰命名(首单词全小写,后面的单词首字母大写) +- 代码采用tab制表符缩进而不是空格(Go 的默认风格)tab默认四空格。 + +## 配置系统说明 + +采用了viper这个配置文件库,方便读取配置信息。 + +## 项目结构 + +微精弘后端主要的技术栈是Go语言和Rust语言,其中的WeJH-GO、User-Center、funnel使用的Go语言,yxy使用的是Rust语言编写。 + +微精弘后端使用了微服务架构思想,将不同的功能拆分成不同的模块,由WeJH-Go去调用不同的服务。 + +**WeJH-Go与各个模块之间的通讯采用HTTP协议** + +微精弘的具体项目结构如下所示: +``` +微精弘后端 +├── WeJH-Go +│   ├── funnel +│   ├── yxy +│   ├── User-Center +``` + +各个模块的详细说明如下: + +- WeJH-Go:核心部分,通过该模块去调用其他模块的服务,前端的所有请求都会打到该模块上,并作出相应的处理和相应 +- funnel:处理与正方教务系统、图书馆、餐厅相应的逻辑。 +- yxy:处理与容大后勤相关的服务,容大后勤的服务主要在易校园app上可以查询,yxy主要是爬取易校园app的相关数据,返回给WeJH-Go +- User-Center: 处理用户登陆与注册,之后的精弘产品,都可以通过用户中心做统一身份验证 + +各个模块的相应代码均在zjutjh的Github仓库开源。 + +## 微信小程序的一些说明 + +### 登陆 + +在整个小程序中,最关键的就是openid,这个 openid 是微信小程序 用来标识用户的(可以理解成一个贼NB的用户名) + +登陆的时候,前端返回给我们一个code,我们根据code去对微信服务器发送请求从而得到一个openid,每个微信用户的openid唯一,我们根据openid来实现鉴权 + +在测试的时候请注意,这个code只有使用微信小程序的前端生成才是有效的,我们在apifox测试会得到code无效的报错 + +### 同源策略问题 + +小程序在容器里面运行,不是单纯的浏览器,小程序的请求不是浏览器发的,是容器发的,所以就不存在跨域问题。如果有新的域名要请求,要把域名加到开发者平台白名单里面,容器发请求之前会对域名校验,不在白名单的发不出去。 + +## WeJH-Go后端程序代码结构及相关说明 +``` +WeJH-Go +├── app +│   ├── apiException //统一错误处理 +│   ├── config //小程序基础配置设置,比如学期时间等等 +│   ├── controllers //控制器,主要包括了处理函数 +│   ├── midwares //中间件 +│   ├── models //数据库表 +│   ├── services //核心服务 +│   └── utils //一些封装好的工具 +│   ├── fetch //发送HTTP请求的工具 +│   └── stateCode +├── config //主要包括小程序后端配置文件,使用viper +│   ├── api //其他服务的api地址 +│   ├── config +│   ├── database +│   ├── redis +│   ├── router +│   ├── session +│   └── wechat +``` \ No newline at end of file