Appearance
整体架构
text
┌─────────────────────────────────────┐
│ contracts/ │
│ openapi/rbac-api.yaml + sql/ │
└──────────────┬──────────────────────┘
│ 契约对齐
┌─────────────────────────┼─────────────────────────┐
▼ ▼ ▼
packages/server-java packages/server-python packages/shared/*
Spring Boot 单体 :8080 FastAPI :8000/8080 types/api-client/auth/admin
│ │ │
packages/micro-java │ │
Gateway :8080 → micro │ │
│ │ │
└─────────────┬───────────┘ │
│ HTTP /api/v1 │ workspace 链接
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ web (Vue) │ desktop (Electron) │ mobile (uni-app) │
└───────────────┬─────────────────────────────────────────┘
│ Desktop 可选:本地仪器设备
▼
packages/device-agent (C# :19721,可选插件)
串口 / SDK / Mock 驱动设计原则
- 契约优先:API 与表结构以
contracts/为准,多后端对照实现 - 前端与后端语言解耦:通过
@xichen-full-stack/api-client统一 HTTP - 管理端复用:Web 与 Desktop 共用
@xichen-full-stack/admin - 权限双保险:前端按钮隐藏 + 后端接口鉴权
- 设备控制本地化(可选):需要仪器设备时,RBAC 仍走 Java/Python;实时命令可走 Desktop 本地 C# Agent
- Java 双实现:
server-java(单体,上手快)与micro-java(微服务,Gateway 仍暴露 :8080)
分层说明
| 层 | 目录 | 职责 |
|---|---|---|
| 契约 | contracts/ | OpenAPI、SQL schema |
| 后端 | packages/server-java、server-python、micro-java | REST API、JWT、RBAC |
| 共享 | packages/shared/* | 类型、HTTP、权限工具、Admin UI、instrument 客户端 |
| 应用 | packages/web、desktop、mobile | 各端入口与差异化配置 |
| 本地 Agent | packages/device-agent | C# 仪器设备驱动(Desktop 可选插件) |
| 基础设施 | docker-compose.yml | MySQL 8 |
数据模型(RBAC)
text
User ──(sys_user_role)──> Role ──(sys_role_permission)──> Permission
Menu.permission 字段与 Permission.code 对齐,用于前端菜单与按钮