feat(inference): 实现文生图与图片编辑 API 调用,新增管线与编辑 HTTP 端点,JWT 认证中间件

- inference.go: GenerateImages 改为 API 优先(callImageGenAPI),无 key 回退 mock;新增 EditImages/callImageEditAPI(multipart 上传编辑);提取 parseImageResponse 共享响应解析
- handler/generate.go: POST /api/v1/generate 触发生成管线,返回 base64 图片
- handler/edit.go: POST /api/v1/images/edit 图片编辑端点
- mildware/auth.go: JWT Bearer token 认证中间件
- main.go: 路由拆分公开/认证组,generate 与 images/edit 需鉴权
This commit is contained in:
2026-05-24 22:47:43 +08:00
parent 5e54591b1f
commit 0a9a923d55
5 changed files with 412 additions and 21 deletions
+10 -1
View File
@@ -8,6 +8,7 @@ import (
"gen2d/internal/config"
"gen2d/internal/db"
"gen2d/internal/handler"
"gen2d/internal/mildware"
"gen2d/internal/model"
"gen2d/internal/service"
@@ -34,13 +35,21 @@ func main() {
r := gin.New()
r.Use(gin.Recovery()) // panic 恢复中间件,防止服务因未捕获异常宕机
// API v1 路由组
// API v1 路由组 — 公开接口
v1 := r.Group("/api/v1")
{
v1.GET("/health", handler.Health) // 健康检查
v1.POST("/prompt/optimize", handler.PromptOptimize) // 提示词优化
}
// API v1 路由组 — 需认证
v1Auth := r.Group("/api/v1")
v1Auth.Use(mildware.AuthMiddleware(cfg.JWT.Secret))
{
v1Auth.POST("/generate", handler.Generate) // 素材生成管线
v1Auth.POST("/images/edit", handler.EditImage) // 图片编辑
}
// Auth 路由组
auth := r.Group("/auth")
{