Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
X
xyw_asset_console
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • DaiJiezhang
  • xyw_asset_console
  • Repository

Switch branch/tag
  • xyw_asset_console
  • scripts
  • contract
  • fixtures
  • normal.gif
Find file
HistoryPermalink
  • DaiJiezhang's avatar
    feat: 建立 NestJS 迁移地基与契约基准 · 7ec26d20
    将后端从 Java Spring Boot 迁移至 TypeScript + NestJS 的第一阶段成果。
    本次只新增代码与工具,不改动任何 Java 业务逻辑(行为冻结,保证契约对拍有效)。
    
    契约基准(scripts/contract/)
    - 录制 Java 后端 65 个响应快照,覆盖只读、错误路径、写操作、企微联动规则、
      开发者专属端点、设备图片上传六组场景
    - 归一化抹去自增 id、时间戳、令牌等易变值,保留结构、字段顺序、类型与文案
    - CONTRACT-NOTES.md 汇总 13 条实现要点,作为 NestJS 实现的唯一依据
    - fixtures/ 内含定向构造的疑难图片(CMYK、EXIF 旋转、渐进式、大尺寸),
      覆盖 sharp 与 Java ImageIO 的已知差异点
    
    NestJS 地基(backend-nest/)
    - Prisma 只作只读映射:schema 由 db pull 从现有库反向生成,禁用 migrate
    - 统一响应外壳、全局异常映射,文案与 Java 逐字一致
    - 解决三处 Java/Node 固有差异:BigInt 主键无法 JSON 序列化、
      时间格式带时区与零毫秒、写入时本地时间被当作 UTC 而偏移 8 小时
    
    Java 侧的两处必要改动
    - application.yml 同时尝试两个 .env 路径,兼容 IDEA(工作目录为项目根)
      与命令行(工作目录为 backend/)两种启动方式
    - 端口 7689 改为 7690,vite 代理同步更新;NestJS 迁移期占用 7691
    
    迁移期不做的行为变更记录在 docs/migration-backlog.md。
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
    DaiJiezhang authored Aug 18, 2026
    7ec26d20
normal.gif 374 Bytes

Download (374 Bytes)

normal.gif
×

Replace normal.gif

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.