Skip to content

整体架构

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 驱动

设计原则

  1. 契约优先:API 与表结构以 contracts/ 为准,多后端对照实现
  2. 前端与后端语言解耦:通过 @xichen-full-stack/api-client 统一 HTTP
  3. 管理端复用:Web 与 Desktop 共用 @xichen-full-stack/admin
  4. 权限双保险:前端按钮隐藏 + 后端接口鉴权
  5. 设备控制本地化(可选):需要仪器设备时,RBAC 仍走 Java/Python;实时命令可走 Desktop 本地 C# Agent
  6. Java 双实现server-java(单体,上手快)与 micro-java(微服务,Gateway 仍暴露 :8080)

分层说明

目录职责
契约contracts/OpenAPI、SQL schema
后端packages/server-javaserver-pythonmicro-javaREST API、JWT、RBAC
共享packages/shared/*类型、HTTP、权限工具、Admin UI、instrument 客户端
应用packages/webdesktopmobile各端入口与差异化配置
本地 Agentpackages/device-agentC# 仪器设备驱动(Desktop 可选插件
基础设施docker-compose.ymlMySQL 8

数据模型(RBAC)

text
User ──(sys_user_role)──> Role ──(sys_role_permission)──> Permission
Menu.permission 字段与 Permission.code 对齐,用于前端菜单与按钮

相关文档

Xichen Full Stack 内部文档