sub2api/backend/internal/service/gateway_errors.go
win 2279bde564
Some checks failed
CI / test (push) Failing after 1m32s
CI / golangci-lint (push) Failing after 32s
Security Scan / backend-security (push) Failing after 32s
Security Scan / frontend-security (push) Failing after 1m32s
fix: 心跳接入启动 + 网关错误去重
- AntigravityGatewayService 嵌入心跳,构造时自动启动
- Forward() 方法中注册心跳(首次 API 调用触发,后续更新 token)
- 新建 gateway_errors.go: WriteClaudeErrorResponse/WriteGoogleErrorResponse 共享实现
- antigravity writeGoogleError 去掉手写映射,统一用 googleapi.HTTPStatusToGoogleStatus()
- gemini writeClaudeError/writeGoogleError 委托到共享实现
- 新增 docs/antigravity-fingerprint-diagnostic.md 诊断手册
2026-03-27 12:11:22 +08:00

32 lines
925 B
Go

package service
import (
"fmt"
"github.com/Wei-Shaw/sub2api/internal/pkg/googleapi"
"github.com/gin-gonic/gin"
)
// WriteClaudeErrorResponse 写入 Claude 格式的错误响应(共享实现)
// 用于 AntigravityGatewayService 和 GeminiMessagesCompatService
func WriteClaudeErrorResponse(c *gin.Context, status int, errType, message string) error {
c.JSON(status, gin.H{
"type": "error",
"error": gin.H{"type": errType, "message": message},
})
return fmt.Errorf("%s", message)
}
// WriteGoogleErrorResponse 写入 Google 格式的错误响应(共享实现)
// 使用 googleapi.HTTPStatusToGoogleStatus 统一映射 HTTP 状态码
func WriteGoogleErrorResponse(c *gin.Context, status int, message string) error {
c.JSON(status, gin.H{
"error": gin.H{
"code": status,
"message": message,
"status": googleapi.HTTPStatusToGoogleStatus(status),
},
})
return fmt.Errorf("%s", message)
}