Skip to content

LiteGate - 轻量 API 网关

项目概述

LiteGate 是一个轻量级的 API 网关管理平台,实现接口的统一管理、应用授权、流量控制和中转代理功能。它为企业级应用提供了安全、可靠、高效的 API 管理解决方案,帮助开发者和企业更好地管理和监控 API 接口。

LiteGate API网关

核心特性

📋 应用管理

  • 支持多应用注册和管理
  • 应用密钥生成和管理
  • 应用权限控制和角色管理
  • 应用状态监控和统计

🔗 API 管理

  • 支持 RESTful API 和 GraphQL API
  • API 路由配置和管理
  • API 版本控制
  • API 文档自动生成

🛡️ 安全特性

  • HTTPS 支持
  • HMAC-SHA256 签名认证
  • API 密钥管理
  • 访问控制和权限管理
  • 防止 SQL 注入和 XSS 攻击

📊 流量控制

  • 基于 IP 的限流
  • 基于应用的限流
  • 基于 API 的限流
  • 流量统计和分析
  • 异常流量检测

📈 监控和统计

  • 实时流量监控
  • API 调用次数统计
  • 响应时间分析
  • 错误率统计
  • 性能分析和优化建议

🚀 部署方案

  • 容器化部署(Docker)
  • 集群部署支持
  • 高可用配置
  • 负载均衡
  • 自动扩展

技术栈

后端

  • 语言:Go 1.21+
  • Web 框架:Gin
  • 数据库:SQLite / PostgreSQL
  • 缓存:Redis
  • 认证:JWT + HMAC-SHA256
  • 监控:Prometheus + Grafana

前端

  • 框架:Vue 3.4+
  • 状态管理:Pinia
  • UI 库:Element Plus
  • 构建工具:Vite
  • HTTP 客户端:Axios
  • 图表库:ECharts

部署

  • 容器:Docker
  • 编排:Kubernetes
  • CI/CD:GitHub Actions / GitLab CI

项目结构

litegate/
├── backend/              # 后端代码
│   ├── app/
│   │   ├── api/          # API 路由
│   │   ├── services/     # 业务逻辑
│   │   ├── models/       # 数据模型
│   │   └── schemas/      # 数据结构
│   ├── config/           # 配置文件
│   ├── middleware/       # 中间件
│   ├── utils/            # 工具函数
│   ├── main.go           # 应用入口
│   └── go.mod            # 依赖管理
├── frontend/             # 前端代码
│   ├── src/
│   │   ├── components/   # 组件
│   │   ├── views/        # 页面
│   │   ├── store/        # 状态管理
│   │   ├── router/       # 路由
│   │   ├── utils/        # 工具函数
│   │   ├── App.vue       # 应用主组件
│   │   └── main.js       # 应用入口
│   ├── public/           # 静态资源
│   ├── index.html        # HTML 模板
│   ├── vite.config.js    # Vite 配置
│   └── package.json      # 依赖管理
├── docker/               # Docker 配置
└── README.md             # 项目说明

技术实现

API 网关核心

  • 请求路由:基于配置的路由规则,将请求转发到对应的后端服务
  • 认证授权:验证请求的合法性,确保只有授权的应用可以访问 API
  • 流量控制:根据配置的规则,限制 API 的调用频率和并发数
  • 日志记录:记录所有 API 调用的详细信息,便于调试和分析
  • 错误处理:统一处理 API 调用过程中的错误,返回标准的错误格式

安全机制

  • API 密钥:为每个应用生成唯一的 API 密钥,用于身份验证
  • 签名认证:使用 HMAC-SHA256 算法对请求进行签名,防止请求被篡改
  • HTTPS:支持 HTTPS 协议,确保数据传输的安全性
  • 访问控制:基于角色的访问控制(RBAC),限制用户对资源的访问权限

监控系统

  • 实时监控:实时监控 API 的调用情况,包括调用次数、响应时间、错误率等
  • 性能分析:分析 API 的性能瓶颈,提供优化建议
  • 告警机制:当 API 出现异常时,及时发送告警通知

应用场景

  • 企业级应用:为企业内部系统提供统一的 API 管理和访问控制
  • 微服务架构:作为微服务架构的入口,统一管理和路由所有服务的 API
  • SaaS 平台:为 SaaS 平台提供 API 管理和计费功能
  • 移动应用后端:为移动应用提供安全、可靠的 API 访问
  • 第三方集成:管理和监控第三方服务的 API 调用

优势

  • 轻量高效:基于 Go 语言开发,性能优异,资源占用低
  • 易于部署:支持多种部署方式,包括容器化部署和传统部署
  • 灵活配置:提供丰富的配置选项,满足不同场景的需求
  • 安全可靠:内置多种安全机制,保障 API 的安全性
  • 易于扩展:模块化设计,易于添加新功能和集成第三方服务

未来规划

  • 添加更多认证方式,如 OAuth 2.0、OpenID Connect 等
  • 实现 API 市场功能,允许开发者发布和共享 API
  • 添加 API 测试和调试工具
  • 支持更多协议,如 WebSocket、gRPC 等
  • 提供更丰富的监控和分析功能
  • 开发 SDK 和 CLI 工具,方便开发者使用

项目链接