短链接

CRUD、解析、批量与公开跳转页。

路由作用
GET/POST /api/short-links登录用户分页列表 / 新建;校验 src/lib/validations/short-links.ts;业务 src/services/short-links.ts
GET/PATCH/DELETE /api/short-links/[id]单条增删改查
POST /api/short-links/generate生成短码
POST /api/short-links/batch批量
GET /api/short-links/search搜索
GET /api/short-links/validate保存前校验
GET /api/short-links/resolve/[code]服务端解析 code → 目标 URL
GET /api/short-links/stats统计

页面路由

  • /[locale]/i/[code] — 短码公开访问(src/app/[locale]/(default)/i/[code]/page.tsx)。
  • /[locale]/u/[shortId] — 短链形式用户页(src/app/[locale]/u/[shortId]/page.tsx)。
  • /u/[username] — 根路径用户名页(src/app/u/[username]/page.tsx)。

数据流

  1. 前端 POST /api/short-links 通过 schema 校验后写入。
  2. 访客访问 /i/[code] 或通过 resolve/[code] 解析。

关键文件

  • src/app/api/short-links/**
  • src/services/short-links.ts
  • src/lib/validations/short-links.ts

Dependencies

环境变量

  • DATABASE_URL

数据库(src/db/schema.ts)

  • short_links(target_user_id → users.id)
  • users(所有者;custom_username 等路径相关字段)
短链接 | 追踪狗文档