API开放平台

我要开发同款
proginn21123766912024年07月01日
78阅读
开发技术mysqlgo语言docker
所属分类生活服务
授权协议MIT许可

作品详情

XAPI 开放平台 http://60.204.157.168/
仓库入口:https://github.com/xiaoxiongmao5/xapi
项目介绍:一个API开放调用平台。管理员能配置发布接口并可视化分析数据。用户能浏览接口并在线调用。
技术栈:Golang、Gin、MySQL、Redis、Dubbo-go、Nacos、Docker、React、Ant Design
项目亮点:
1. 设计项目架构:该项目由前端 + 后端组成,在后端系统中,根据功能职责,将系统划分为三个关键模块:
1. ① 核心业务后端 ② 聚合第三方API接口的SDK包 ③ 负责统一鉴权、限流、路由转发的网关
2. 各模块相互独立,通过 Dubbo-go + Nacos RPC远程调用 技术实现高效协作。
2. 设计 API签名认证 算法,通过唯一的 ak/sk 鉴权方式,确保接口调用的安全性并防止恶意调用。
3. 封装 全局日志工具,通过 Logrus 的钩子机制为每个请求日志添加 SessionID,以增强故障排除能力。同
时,使用 file-rotatelogs库 对日志文件进行按日切割,以提高日志管理的效果。
4. 设计 全局配置加载和监控机制,静态配置在初始化时加载,而动态配置通过 goroutine 定时检查动态配置
文件的更新时间,若变更就将数据更新到全局动态配置中,并使用 互斥锁 sync.Mutex 确保并发安全。
5. 设计 IP限流中间件,使用 Golang 的 time/rate 扩展库,基于 令牌桶算法 构建IP级别的速率限制器,允许
为每个IP地址设置独立的访问频率限制条件。以提高应用程序的可用性和安全性。
6. 构建 容器化部署 方案,使用 Docker、Docker Compose 实现一键部署,提升应用部署效率
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论