Skip to content

Repository files navigation

Version License JDK Node Spring Boot Vue

API Server

Spring Boot + Vue 3 · 全功能 API 模拟与 AI 服务管理平台

接口模拟 · 模板引擎 · AI 对话 · AI 服务管理 · 用户自助 · 录制回放 · Markdown 文档导出 · Swagger 生态 · RBAC 权限 · 调试面板 · 运维监控 · 多数据库 · 多语言


✨ 核心特性

模块 说明
🧩 接口模拟 固定 / 条件匹配 / 加权随机 / Java 动态代码 / 延迟 / 默认响应 / WebSocket Mock
🤖 AI 智能平台 SSE 流式对话 · 多服务商配置切换 · 12+ LLM · AI 代理统一接入 · 一键生成响应/代码/邮件
🎛️ AI 服务管理 服务商/模型/订阅/额度/API Key 全生命周期管理 · 模型健康检查 · 批量远程导入
👤 AI 用户自助 模型自主订阅 · 优先级/权重配置 · 个人 API Key · 用量统计 · 回落保护
📡 录制回放 HTTP 透明代理录制 · 请求回放对比 · 录制数据搜索与管理
📝 模板引擎 Faker.js 风格随机数据生成 {{name()}} {{phone()}},模板面板一键预览
🔍 调试面板 实时请求日志追踪 · 延迟分布可视化 · 请求/响应详情 · 搜索与分页
📥 Swagger 生态 2.0 / OpenAPI 3.x 导入导出,递归 $ref 解析,冲突检测
📤 文档导出 接口多选一键导出 Markdown · AI 智能增强润色 · 章节合规校验自动回退
📦 项目管理 多项目隔离 · 成员权限 · JSON/Swagger 导入导出
🧬 动态代码 Monaco Editor 编译验证 · 6 种转换器 · 热加载即时生效
🔐 权限管理 RBAC 体系 · 60+ 项细粒度权限 · 权限扫描 · 子权限自动同步
🗄️ 多数据库 SQLite / PostgreSQL / MySQL 一键切换,WAL 模式 · 方言自动适配
📊 数据统计 请求趋势 · IP 来源 · AI 调用 · IOPS · JVM/CPU/内存/磁盘
✉️ 邮件系统 SMTP 配置 · 模板管理 · HTML 预览 · 占位符替换
🌍 国际化 中文 / English / 日本語 · 全站实时切换
🧪 自动化测试 Python 测试框架,90+ 用例覆盖 AI / 功能 / RBAC / 安全 / Swagger
🛡️ 运维监控 健康检查 · Prometheus 指标 · 备份恢复 · Actuator 安全加固
🐳 容器化 Docker 多阶段构建 · 非 root · 镜像加速 · 离线兼容

🚀 快速开始

环境要求:JDK 21+ · Maven 3.6+ · Node.js 18+ · npm 9+

# 一键启动(自动构建前后端)
git clone https://github.com/carolcoral/api-server.git && cd api-server
./run.sh

访问地址:http://localhost:8080 | API:/api

📖 更多部署方式
# 数据库切换(.env 中设置 DB_TYPE)
# 支持:sqlite(默认)· mysql · postgresql

# 手动构建
./build-all-in-one.sh
java -jar backend/target/api-server-2.4.1.jar

# 开发模式
cd backend && mvn spring-boot:run          # 终端 1
cd frontend && npm install && npm run dev   # 终端 2

# Docker
cd docker && docker-compose up -d

构建说明见 BUILD_README.md


🔐 默认账号

环境 用户名 密码 备注
开发 admin Admin@123 首次启动自动创建
生产 $ADMIN_USERNAME $ADMIN_PASSWORD 务必修改强密码
export ADMIN_USERNAME=admin
export ADMIN_PASSWORD=YourStrongP@ssw0rd123
export JWT_SECRET=your-super-secret-jwt-key-at-least-256-bits-long

📚 响应模式

模式 说明 场景
固定响应 预设 JSON / 文本 状态码 200 / 404 / 500
条件响应 请求参数动态匹配 $.userId == '123' → 返回用户数据
随机响应 按权重随机返回 灰度发布模拟
代码处理器 Java 动态编译,可读写 DB、调用外部 API 数据脱敏、格式包装
# HTTP Mock
curl http://localhost:8080/api/mock/{projectCode}/{apiPath}

# WebSocket Mock
new WebSocket('ws://localhost:8080/api/ws/mock/{projectCode}/{path}')

🤖 AI 能力

能力 说明
💬 智能对话 SSE 流式响应 · 多轮上下文记忆 · Markdown + GitHub 风格代码高亮 · 历史持久化
🔍 知识检索 RAG 增强,实时检索项目文档注入上下文,未命中回退通用知识
🎨 内容生成 一键生成响应数据 · Java 代码模板 · HTML 邮件 · 接口描述
🔌 多模型 12+ LLM 预设 + 自定义兼容(OpenAI / Gemini / Claude / DeepSeek / 通义千问 等)
📄 文档增强 接口 Markdown 导出 AI 润色 · 并行增强 · 缺失章节自动回退基础模板
📊 调用统计 多用户趋势折线图 · 年/月/日粒度 · 成功率追踪

🗄️ 多数据库

数据库 切换方式 适用场景
SQLite DB_TYPE=sqlite(默认) 单机部署、零配置开箱即用
PostgreSQL DB_TYPE=postgresql 生产环境、高并发
MySQL DB_TYPE=mysql 已有 MySQL 基础设施

只需修改 .env 中的 DB_TYPE 和对应连接信息,DatabaseDialectProvider 自动适配方言。


🛡️ 运维与监控

能力 说明
💚 健康检查 数据库连接池 / 磁盘空间 / Mock 服务状态,/actuator/health 详情展示
📈 Prometheus mock_requests_total / mock_request_duration 等指标,Grafana 直接对接
💾 备份恢复 一键导出/恢复完整 Mock 配置(JSON),支持合并与替换模式

📁 项目结构

api-server/
├── backend/                          # Spring Boot
│   └── src/.../apiserver/
│       ├── config/                   # Security / Web / CORS / 邮件
│       ├── controller/               # REST 控制器
│       ├── entity/                   # JPA 实体
│       ├── filter/                   # JWT 认证过滤器
│       ├── plugin/                   # 动态编译器 & 响应处理器
│       ├── repository/               # Spring Data JPA
│       ├── service/                  # 业务逻辑
│       └── util/                     # 工具类
├── frontend/                         # Vue 3
│   └── src/
│       ├── locales/                  # 国际化 (zh-CN / en-US / ja-JP)
│       ├── views/                    # 页面组件
│       ├── layout/                   # 布局组件
│       ├── stores/                   # Pinia 状态管理
│       └── api/                      # Axios 封装
├── auto_test_tool/                   # 自动化测试工具
│   ├── core/                         # 测试引擎 / HTTP 客户端 / 报告生成
│   ├── tests/                        # AI / 功能 / RBAC / 安全 测试套件
│   └── config/                       # 测试配置
├── docker/                           # Docker Compose + Dockerfile
├── build.sh / run.sh                 # 构建 & 启动
├── CHANGELOG.md                      # 变更日志
└── README.md

⚙️ 关键配置

# application.yml
spring:
  profiles:
    active: ${DB_TYPE:sqlite}          # 数据库:sqlite | mysql | postgresql
jwt:
  secret: ${JWT_SECRET:your-secret-key}
  expiration: 86400000                 # 24 小时
admin:
  username: ${ADMIN_USERNAME:admin}
  password: ${ADMIN_PASSWORD:}
# .env 环境变量
DB_TYPE=sqlite                         # 切换数据库
JWT_SECRET=your-256-bits-plus-secret-key
ADMIN_PASSWORD=YourStrongP@ssw0rd123
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000

🔒 安全

特性 说明
JWT 认证 无状态 Token,过期时间可配
强密码策略 大小写 + 数字 + 特殊字符,最少 8 位
登录锁定 多次失败后临时锁定
IP 白名单 限制管理接口来源
CORS 跨域白名单控制 · 凭据跨域 · 外部地址直接调用
iframe 白名单 CSP frame-ancestors 动态控制,禁止 / 白名单 / 全部三种模式,默认禁止
防注入 SQL 参数化 · XSS 过滤 · CSRF 防护
RBAC 角色-权限体系,页面/按钮级控制,动态菜单显隐
Actuator 安全 监控端点需登录认证,杜绝信息泄露

📄 许可证

Apache License 2.0 · Copyright © 2024-2026 carolcoral · Author: LXW


📧 联系

GitHub github.com/carolcoral · Email lxw@cnkj.site

Made with ❤️ by carolcoral

About

基于 Spring Boot + Vue 3 的 API 接口模拟服务器

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages