# ar-platform **Repository Path**: liuxuezhan/ar-platform ## Basic Information - **Project Name**: ar-platform - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-12 - **Last Updated**: 2025-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README windows: make: MinGW-64安装包 linux: make :没有用yun或其他安装 go-zero: go install github.com/zeromicro/go-zero/tools/goctl@latest protoc: goctl env check --install --verbose --force 安装不成功可分别安装 protoc , protoc-gen-go , protoc-gen-go-grpc ## 生成代码 > make code 编译并生成api相关框架文件,也可修改相关文件参数 ## 生成Swagger文档 > make swg 编译并生成 rpc 相关接口文档, 也可修改相关文件参数 # 项目分为API业务层以及RPC数据层,抽离封装了rpc-client、base-common包, 本包为 API业务层 ## 全局说明: 1. base-common提供一些公共的通用代码,允许API层和RPC层调用 2. rpc-client为API业务层调用包,提供RPC业务对接能力 3. API业务层是为前端提供接口服务,主要是对外提供http接口,以及综合逻辑处理。API层没有数据库查询能力,并且不能相互调用,只能调用RPC层和Common层。 4. RPC数据层提供了数据库操作能力,负责底层业务逻辑处理,对外提供RPC接口能力。 5. 所有函数错误需要显示返回,即需要定义一个返回error 6. 在自定义协程里面,必须手动加上 recover ## API接口层: 1. 该层的设计是基于gin框架进行的二次封装,具有gin框架的所有能力。 2. router中定义路由是二级路由[eg: /controller/function],但是暴露给client端为三级路由 [eg: /api-server/controller/function]。 3. 接口请求参数和返回值,采用proto文件定义,采用json参数验证逻辑。 4. 接口文档采用proto-swagger插件,自动生成swagger接口文档。 5. 通过make proto 命令自动生成,shell proto.pb.go 文件, 会覆盖旧文件。 6. 在该层可以通过`headInfo.Getxxx()`获取当前登陆的一些信息。 7. 可以通过rpc-client中间层,调用rpc-server的rpc接口。 ## RPC业务层: 1. 该层的设计是基于Google grpc框架进行的二次封装,具有grpc框架的所有能力。 2. RPC的请求路由用proto文件进行定义,proto文件中定义了请求的路由和请求参数,以及返回参数。 3. 数据库模型采用gorm框架进行定义,具有gorm框架的所有能力。 4. 通过make grpc 命令,自动生成请求路由和请求参数,以及返回参数。 5. 如果需要新发布一个rpc服务,需要在rpc-client中注册,然后在api-server中调用。 # 如何使用 gitee.com/liuxuezhan/ar-platform/rpc-client(所有协议共用) gitee.com/liuxuezhan/ar-platform/assets-api(资产c端http入口)----------------->gitee.com/liuxuezhan/ar-platform/assets-rpc admin-api(后台管理http入口)中的资产模块----------->gitee.com/liuxuezhan/ar-platform/assets-rpc gitee.com/liuxuezhan/ar-platform/base-common(基础模块) gitee.com/liuxuezhan/ar-platform/login-rpc(登陆模块) 代码结构 dsl(rpc协议,api协议) etc(配置文件) internal config(配置文件转换) svc(rpc协议链接) dao schema(表结构) model(数据库操作) logic(消息处理) pkg(共用模块) swagger(协议文档,导入apifox) 登陆流程 密码验证(md5校验) 用户id与平台组合生成token 发送token到redis