开发文档
| 版本号 | 修改 | 修改时间 | 备注 |
|---|---|---|---|
| v1.0.0 | 王小琱 | 2024.12.20 | 初次修订 |
1. 项目简介
- 服务名称:
exchange-currency-service-backend - 服务描述:本项目为交易所、金融等业务提供币种、币对、行情等基础服务,支持币对类型、币对参数、手续费、风控参数等多维度管理。
- 所属模块:基础服务组件。
- 负责人:王小琱(wang746277441@gmail.com)
2. 功能描述
- 支持币对类型的增删改查。
- 支持币对(Symbol)的增删改查及批量查询。
- 支持币对参数(如最小下单量、价格精度等)配置与查询。
- 支持币对手续费、风控参数等多维度配置。
- 支持币种资产列表查询。
- 支持 gRPC 接口,便于与其他微服务集成。
3. 系统架构
3.1 主要技术栈
- 编程语言:[Go / Protocol Buffers v3]
- 服务框架:[Go Micro / GORM]
- 数据库:[MySQL]
- API接口:[gRPC]
- 监控:[Prometheus]
- 容器编排:[Docker]
备注:具体依赖版本详见go.mod文件。
3.2 架构图
3.3 架构概括
业务层(Business Layer)
负责币对、币种、手续费等业务逻辑处理,向外部服务提供标准接口。基础服务层(Infrastructure Layer)
负责数据库访问、配置管理、日志、监控等底层能力。
3.4 业务流程
3.4.1 新增币对类型流程
3.4.2 查询币对参数流程
3.4.3 设置手续费流程
4. 依赖组件
| 组件 | 版本 | 说明 |
|---|---|---|
| MySQL | 8.x | 关系型数据库 |
5. 接口设计
见接口文档
使用
make doc可以重新生成接口文档。
6. 数据库设计
7. 项目部署
见部署文档
8. 错误码定义
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| ErrNotFound | 资源不存在 | 资源不存在 |
| ErrSystem | 内部错误 | 内部服务调用失败 |
| ErrParam | 参数错误 | 参数错误 |
9. FAQ
1. 如何新增币对类型?
通过 gRPC 接口 AddSymbolType,传入类型名称和描述即可。
2. 如何批量获取币对信息?
调用 BatchGetSymbolInfo 或 GetAllSymbolInfo,可按 symbol、类型等条件批量获取。
3. 如何配置币对参数?
通过 AddSymbolSettings、UpdateSymbolSettings 等接口进行配置,支持自定义参数键值。
4. 如何设置手续费?
通过 SetSymbolRules 接口,支持按币对类型、等级、币对ID等多维度设置。
