本项目见 GitHub: https://github.com/ErikJiang/market_monitor
这是一个初级 Gopher 练手的小项目;
该项目功能简单, 主要实现监测币市行情变化, 达到预警效果的功能, 大致的使用场景如下:
用户登录服务;
用户设置关注的币种及预警的走势价格;
当行情变化触发到用户的预警设置时, 服务将自动发送提醒邮件通知用户;
整体功能简明, 通过这个项目你可以了解到:
基于 Go Mod 的项目包管理
Gin 框架的基本开发
Gin 服务跨域问题的处理
基于 JWT 注册, 登录等验证流程
数据库 MySQL ORM 的基本使用
缓存数据库 Redis 的基本使用
为项目工程添加配置文件
在项目中添加日志
基于 Cron 的 Scheduler 定时任务
如何为编写的 API 添加 Swagger 接口文档
如何使应用服务平滑重启
构建应用服务 Docker 镜像
Docker Compose 容器编排部署
功能点:
常规的用户注册, 登录, 登出, 身份验证等功能
监测数据源的选择 (用于选择支持监测的交易所数据源, 目前仅支持监测 gate.io )
监测策略设置管理 (用于设置监测的具体规则要求, 当前仅支持走势大小值预警策略)
监测信息通知 (在监测条件被触发后, 发送消息通知用户, 目前仅支持邮件通知)
本项目用到的依赖:
- web framework: https://github.com/gin-gonic/gin
- Redis: https://github.com/gomodule/redigo
- MySQL: https://github.com/jinzhu/gorm
- logger: https://github.com/rs/zerolog
- scheduler: https://github.com/robfig/cron
- config: https://github.com/spf13/viper
- JSON Web token: https://github.com/dgrijalva/jwt-go
- swagger docs: https://github.com/swaggo/gin-swagger
如果本项目能够对你有所帮助, 请为项目添加 star, 非常感谢 ^_^
另外, 本项目的一些内容参考了煎鱼的 Gin 实践系列文章, 这里也向煎鱼致敬~
来源: https://segmentfault.com/a/1190000017867390