ASP.NET Core 8 Web API · DDD 四层架构 · JWT 认证 · SQLite
Juggle.Api 是 Juggle 接口编排平台的 API 入口层,负责:
- 接收并路由所有 HTTP 请求
- 参数校验与权限认证
- 调用应用层服务处理业务逻辑
- 返回统一 JSON 响应格式
- 托管前端静态文件(生产模式)
Juggle.Api/
├── Controllers/
│ ├── Api/
│ │ ├── ApiController.cs # API 接口 CRUD、调试、Swagger 解析
│ │ ├── DataSourceController.cs # 数据源管理(增删改查 + 连接测试)
│ │ ├── FlowDefinitionController.cs # 流程定义 CRUD + 调试 + 部署
│ │ ├── FlowInfoController.cs # 流程信息管理(已部署流程)
│ │ ├── FlowLogController.cs # 流程执行日志查询
│ │ ├── FlowVersionController.cs # 流程版本管理 + 触发
│ │ ├── ObjectController.cs # 自定义对象管理
│ │ ├── ParameterController.cs # 参数管理(入参/出参/Header)
│ │ ├── StaticVariableController.cs # 全局静态变量管理
│ │ ├── SuiteController.cs # 套件管理
│ │ ├── TokenController.cs # 访问令牌管理
│ │ ├── UserController.cs # 用户登录
│ │ └── VariableInfoController.cs # 流程变量信息管理
│ └── Open/
│ └── FlowOpenController.cs # 开放接口(外部 GET/POST 触发流程)
├── wwwroot/ # 前端构建产物(Vue3 静态文件)
├── juggle.db # SQLite 数据库文件
├── appsettings.json # 应用配置
├── appsettings.Development.json # 开发环境配置
├── Program.cs # 应用入口 + 服务注册
└── Juggle.Api.csproj
默认监听端口:9127
dotnet publish -c Release -o ./publish
{
"Jwt": {
"Key": "JuggleNet6SecretKey2026!"
},
"Logging": {
"LogLevel": {
"Default": "Information"
}
}
}
Jwt:Key:JWT 签名密钥,生产环境请修改为强密码
数据库文件 juggle.db 自动创建于 程序运行目录(即 Juggle.Api/),启动时通过 EnsureCreated() 自动建表,无需手动执行迁移。
| 路由前缀 |
认证方式 |
说明 |
/api/* |
JWT Bearer Token |
控制台管理接口,需登录 |
/open/* |
API Token(Header/Query) |
开放接口,供外部调用流程 |
登录获取 JWT Token:
POST /api/system/user/login
Body: { "username": "juggle", "password": "juggle" }
后续请求携带:
Authorization: Bearer <token>
{
"code": 200,
"message": "success",
"data": { ... }
}
| code |
说明 |
| 200 |
成功 |
| 400 |
参数错误 |
| 401 |
未授权(未登录或 Token 过期) |
| 500 |
服务器内部错误 |
| 方法 |
路径 |
说明 |
| POST |
/api/system/user/login |
用户登录,返回 JWT Token |
| 方法 |
路径 |
说明 |
| POST |
/api/flow/definition/add |
创建流程定义 |
| PUT |
/api/flow/definition/update |
修改流程定义 |
| DELETE |
/api/flow/definition/delete/{id} |
删除流程定义 |
| GET |
/api/flow/definition/info/{id} |
查询流程定义详情 |
| POST |
/api/flow/definition/page |
分页查询 |
| PUT |
/api/flow/definition/save |
保存流程画布内容 |
| POST |
/api/flow/definition/debug/{flowKey} |
调试流程(返回节点日志) |
| POST |
/api/flow/definition/deploy |
部署流程 |
| 方法 |
路径 |
说明 |
| POST |
/api/flow/version/page |
分页查询版本列表 |
| PUT |
/api/flow/version/status |
启用/禁用版本 |
| DELETE |
/api/flow/version/delete/{id} |
删除版本 |
| GET |
/api/flow/version/latest/{flowKey} |
获取最新版本号 |
| 方法 |
路径 |
说明 |
| POST |
/api/suite/add |
创建套件 |
| POST |
/api/suite/list |
查询套件列表 |
| POST |
/api/suite/api/add |
创建 API 接口 |
| POST |
/api/suite/api/list |
查询接口列表 |
| POST |
/api/suite/api/debug |
调试 API 接口 |
| 方法 |
路径 |
说明 |
| POST |
/api/system/datasource/add |
新增数据源 |
| GET |
/api/system/datasource/list |
数据源列表 |
| POST |
/api/system/datasource/test/{id} |
测试数据源连接 |
| POST |
/api/system/token/add |
新增访问令牌 |
| GET |
/api/system/token/list |
令牌列表 |
| GET |
/api/system/variable/list |
全局静态变量列表 |
| POST |
/api/system/variable/save |
保存静态变量值 |
| 方法 |
路径 |
说明 |
| GET |
/open/flow/trigger/{version}/{key} |
GET 方式触发流程 |
| POST |
/open/flow/trigger/{version}/{key} |
POST 方式触发流程 |
主要 NuGet 包:
| 包 |
版本 |
用途 |
| Microsoft.EntityFrameworkCore.Sqlite |
8.x |
SQLite ORM |
| Microsoft.AspNetCore.Authentication.JwtBearer |
8.x |
JWT 认证 |
| Swashbuckle.AspNetCore |
6.x |
Swagger 文档 |
| MySqlConnector |
2.3.7 |
MySQL 数据库节点 |
| Npgsql |
8.0.3 |
PostgreSQL 数据库节点 |
| Microsoft.Data.SqlClient |
5.2.1 |
SQL Server 数据库节点 |
Juggle.Api
└─ 引用 Juggle.Application
└─ 引用 Juggle.Domain
└─ 引用 Juggle.Infrastructure
- Juggle.Domain — 15个领域实体 + FlowEngine 流程引擎 + 8个节点执行器
- Juggle.Infrastructure — JuggleDbContext(EF Core)+ JsonHelper + Md5Helper
- Juggle.Application — FlowExecutionService + DataSourceService + JwtService + 请求/响应 DTO