Files
lgp-admin-plus-api/.cursor/rules/Dual-Backend-Sync.mdc

39 lines
2.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: 双后端同步本仓库Laravel与 nl-admin-api-gfGoFrame互为镜像实现改一端必须同步另一端
alwaysApply: true
---
# 双后端同步Laravel ↔ GoFrame
本仓库Laravel 13 版 nl-admin-api与工作区内 `d:\myCode\nl-admin\nl-admin-api-gf`GoFrame v2 的 Go 版同功能实现)**互为镜像**
接口路径、入参出参、业务规则、响应结构、数据表结构必须保持一致,两端 JWT/密码/加密互通(同库同 Redis 可互认)。
## 强制要求
- 本仓库任何**接口、业务逻辑、表结构、配置键**的改动,必须同步修改 `nl-admin-api-gf` 对应实现
- 若本次会话无法当场同步如用户明确说只改一端必须在回复末尾列出「gf 侧待同步清单」(文件级 + 行为级)
- 新增接口两端都实现完才算完成;禁止只改一端悄悄收尾
- 改动 `config/nl.php` 的键值(如 log.no_insert、redis 前缀、jwt同步改 gf 的 `manifest/config/config.yaml` 的 `nl` 段
## 层级对应关系(本仓库 → nl-admin-api-gf
| Laravel本仓库 | GoFramenl-admin-api-gf |
|---|---|
| routes/api.php autoRouteRegister | internal/cmd/cmd.go 手写注册 + internal/router/genroutes |
| app/Http/Controllers/Api及 core/*Controller | internal/controller/<模块>/ |
| app/Service/*Service | internal/logic/<模块>/ |
| app/Service/common/JWT/Utils/加密/OSS/AI/CURD 基类) | internal/library/auth/utils/crypto/oss/ai/curd/response/xerr |
| app/Models/*Model | internal/model/entity + internal/dao |
| app/Enum/ | internal/consts/consts.go |
| app/Http/Middleware/ApiOpLogMiddleware | internal/middleware/oplog.go |
| config/nl.php | manifest/config/config.yaml 的 nl 段 |
| app/template/api/view/uniapp 代码生成模板) | resource/template/api 模板为 Go 版view/uniapp 语义一致) |
## 必须对齐的行为基线(两端一致,改动需双端验证)
- 鉴权:`Authorization: Bearer <JWT>`HS256同 secret 可互认)+ Redis `nl_login_{id}`(不设 TTL无独立鉴权中间件差异不影响行为口径
- 响应:`{code, message, result, type}`,成功 code=0失败默认 500HTTP 恒 200sql 安装向导 `{success,...}` 除外)
- 密码 bcryptPHP password_hash ↔ Go bcrypt cost12 互通);库内敏感字段 AES-256-CBC密文前缀 `nl_ase_256_`
- 分页 `page`/`pageSize` 默认 1/20个人 login-log/op-log 默认 10 上限 100兼容 `size`);软删 `deleted_at`;批量删除入参 `ids`
- 操作日志按 `nl_api_endpoint` 的 `is_log`/`status` 落 `nl_api_op_log`,脱敏键与跳过白名单两端同步
- 代码生成产物:后端代码 + 建表 + 路由挂载 + `nl_menu` 菜单 + zipview/ 与 uniapp/ 双前端),两端能力必须同口径