logo
0
0
WeChat Login

API-Hub

基于 TypeScript 的 API 聚合服务 - 统一网关和聚合多个 API 数据源

特性

  • 🚀 API 网关:统一入口,路由转发
  • 🔄 聚合服务:支持多个 API 数据源的聚合处理
  • 缓存机制:内存缓存提升性能
  • 💪 类型安全:完整的 TypeScript 类型系统
  • 🛡️ 错误处理:统一的错误处理机制
  • 📝 日志系统:请求日志记录

快速开始

安装依赖

npm install

开发模式

npm run dev

构建

npm run build

生产运行

npm start

项目结构

API-Hub/ ├── src/ │ ├── index.ts # 主入口文件 │ ├── app.ts # Express 应用配置 │ ├── types/ │ │ └── index.ts # TypeScript 类型定义 │ ├── services/ │ │ ├── aggregator.ts # API 聚合服务 │ │ ├── cache.ts # 缓存服务 │ │ └── proxy.ts # 代理服务 │ ├── routes/ │ │ └── index.ts # 路由定义 │ ├── middleware/ │ │ ├── errorHandler.ts # 错误处理中间件 │ │ └── logger.ts # 日志中间件 │ └── utils/ │ └── helpers.ts # 工具函数 ├── package.json ├── tsconfig.json └── README.md

API 使用

聚合接口

POST /api/aggregate Content-Type: application/json { "requests": [ { "id": "users", "url": "https://api.example.com/users", "method":GET" }, { "id": "posts", "url": "https://api.example.com/posts", "method": "GET" } ] }

代理接口

GET /api/proxy?url=https://api.example.com/data

配置

创建 .env 文件:

PORT=3000 NODE_ENV=development LOG_LEVEL=info CACHE_TTL=300

开发

代码规范

npm run lint

测试

npm test

License

MIT

About

No description, topics, or website provided.
Language
TypeScript95.2%
JavaScript4.8%