- AntigravityGatewayService 嵌入心跳,构造时自动启动 - Forward() 方法中注册心跳(首次 API 调用触发,后续更新 token) - 新建 gateway_errors.go: WriteClaudeErrorResponse/WriteGoogleErrorResponse 共享实现 - antigravity writeGoogleError 去掉手写映射,统一用 googleapi.HTTPStatusToGoogleStatus() - gemini writeClaudeError/writeGoogleError 委托到共享实现 - 新增 docs/antigravity-fingerprint-diagnostic.md 诊断手册
32 lines
925 B
Go
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)
|
|
}
|