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
│ │ │
└─────────────┬───────────┘ │
│ HTTP /api/v1 │ workspace 链接
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ web (Vue) │ desktop (Electron) │ mobile (uni-app) │
└─────────────────────────────────────────────────────────┘设计原则
- 契约优先:API 与表结构以
contracts/为准,双后端对照实现 - 前端与后端语言解耦:通过
@xichen-full-stack/api-client统一 HTTP - 管理端复用:Web 与 Desktop 共用
@xichen-full-stack/admin - 权限双保险:前端按钮隐藏 + 后端接口鉴权
分层说明
| 层 | 目录 | 职责 |
|---|---|---|
| 契约 | contracts/ | OpenAPI、SQL schema |
| 后端 | packages/server-java、server-python | REST API、JWT、RBAC |
| 共享 | packages/shared/* | 类型、HTTP、权限工具、Admin UI |
| 应用 | packages/web、desktop、mobile | 各端入口与差异化配置 |
| 基础设施 | docker-compose.yml | MySQL 8 |
数据模型(RBAC)
text
User ──(sys_user_role)──> Role ──(sys_role_permission)──> Permission
Menu.permission 字段与 Permission.code 对齐,用于前端菜单与按钮