Skip to content

Latest commit

 

History

History
229 lines (173 loc) · 6.51 KB

File metadata and controls

229 lines (173 loc) · 6.51 KB

Juggle.Api — 后端入口层

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

启动与运行

前置要求

开发模式启动

cd Juggle.Api
dotnet run

默认监听端口:9127

地址 说明
http://localhost:9127/ 应用首页(前端页面)
http://localhost:9127/swagger Swagger API 文档

发布

dotnet publish -c Release -o ./publish

配置说明

appsettings.json

{
  "Jwt": {
    "Key": "JuggleNet6SecretKey2026!"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    }
  }
}
  • Jwt:Key:JWT 签名密钥,生产环境请修改为强密码

数据库

数据库文件 juggle.db 自动创建于 程序运行目录(即 Juggle.Api/),启动时通过 EnsureCreated() 自动建表,无需手动执行迁移。


API 路由规范

认证方式

路由前缀 认证方式 说明
/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