2026-03-30 工作项目记录
时间: 2026-03-30 状态: 已完成 ✅
Content Center 项目开发
项目概览
AI 内容中心,包含前端管理后台和后端服务,支持图片生成和 API Key 管理。
1. 后端 API Key 管理接口
文件: C:\project\content-center\backend\src\routes\apikey.ts(新建)
路由挂载: /api/admin/apikey
接口设计
| 接口 | 方法 | 说明 |
|---|---|---|
/api/admin/apikey/list | GET | 返回所有 API Key(key 只显示前缀 ccg_live_xxxx,secret 完全隐藏) |
/api/admin/apikey/create | POST | 创建 Key,body: { name: string },返回 { id, name, key, secret },secret 仅此次返回 |
/api/admin/apikey/delete | DELETE | 删除 Key,body: { id: string } |
存储
- 文件:
C:\project\content-center\data\apikeys.json - 每条记录:
{ id, name, key, secret, createdAt, enabled } - Key 生成规则:
ccg_live_+ 32位随机字母数字
类型定义
typescript
interface ApiKeyRecord {
id: string;
name: string;
key: string;
secret: string;
createdAt: number;
enabled: boolean;
}2. 对外图生图接口 v2
文件: C:\project\content-center\backend\src\routes\v2.ts(新建)
路由挂载: /api/v2
接口设计
POST /api/v2/image/generate
Authorization: Bearer <API_KEY>
Content-Type: application/json
{
"type": "text-to-image" | "image-to-image",
"prompt": "string",
"image_base64": "string (type=image-to-image 时必填)",
"ratio": "1:1" | "16:9" | "9:16" | "4:3" | "3:4" (可选,默认 "1:1"),
"resolution": "1k" | "2k" (可选,默认 "2k"),
"model": "jimeng-5.0" | "nano-banana-fast" (可选,默认 "nano-banana-fast")
}鉴权逻辑
- 从
Authorization: Bearer <token>提取 token - 在
apikeys.json中查找key === token且enabled === true的记录 - 未找到返回 401
{"error": "无效的API Key"}
业务逻辑
type=text-to-image→ 调用ImageGenerator.textToImage(prompt)type=image-to-image→ 调用ImageGenerator.imageToImage(prompt, image_base64)- model 参数控制使用即梦或 GRS
- 图片大小限制: image_base64 解码后不超过 10MB
返回格式
- 成功: 直接输出图片二进制,
Content-Type: image/png - 失败: JSON
{"error": "错误信息"},状态码 4xx/5xx
3. 前端 AdminPanel API Key Tab
文件: C:\project\content-center\frontend\src\components\AdminPanel.tsx
功能
- 新增第三个 Tab:
apikeys - 创建 API Key(输入名称)
- 列表展示(显示前缀、名称、状态、创建时间)
- 删除 API Key
- 复制 Key 到剪贴板
- 创建后临时显示 Secret(仅一次)
4. server.ts 更新
引入新路由并挂载:
typescript
import apikeyRoutes from './routes/apikey';
import v2Routes from './routes/v2';
app.use('/api/admin/apikey', apikeyRoutes);
app.use('/api/v2', v2Routes);Git 推送操作
jimeng-free-api-all
- 修改内容:
configs/dev/service.yml端口 8000→8001,package.json配置更新 - Commit 推送至
origin release1.0分支 - ✅ 推送成功
node_modules 处理
- 确认
.gitignore已包含node_modules/ - 已添加到
.gitignore,避免后续误提交
项目关闭
应用户要求,关闭以下服务(端口已释放):
- ✅ kitchen-ai-demo (8000)
- ✅ content-center 前端 (3000)
- ✅ content-center 后端 (3001)
- ✅ jimeng-free-api-all (8001)
状态汇总
| 项目 | 状态 | 说明 |
|---|---|---|
| API Key 管理 | ✅ 完成 | apikey.ts,已集成到 server.ts |
| v2 图生图接口 | ✅ 完成 | v2.ts,已集成到 server.ts |
| AdminPanel Tab | ✅ 完成 | 前端 API Key Tab |
| Git 推送 | ✅ 完成 | jimeng-free-api-all → release1.0 |
| 项目关闭 | ✅ 完成 | 所有端口已释放 |