update: 2026-03-28 20:59
This commit is contained in:
92
infogenie-backend-go/internal/router/router.go
Normal file
92
infogenie-backend-go/internal/router/router.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"infogenie-backend/internal/database"
|
||||
"infogenie-backend/internal/handler"
|
||||
"infogenie-backend/internal/middleware"
|
||||
)
|
||||
|
||||
func Setup(r *gin.Engine) {
|
||||
r.Use(middleware.CORS())
|
||||
|
||||
authH := handler.NewAuthHandler()
|
||||
userH := handler.NewUserHandler()
|
||||
aiH := handler.NewAIModelHandler()
|
||||
siteH := handler.NewSiteConfigHandler()
|
||||
aiRtH := handler.NewAIRuntimeHandler()
|
||||
|
||||
r.GET("/", func(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"message": "万象口袋 后端 API 服务运行中",
|
||||
"description": "提供AI模型应用接口,用户认证由萌芽账户认证中心提供",
|
||||
"version": "3.2.0-go",
|
||||
"timestamp": time.Now().Format(time.RFC3339),
|
||||
"endpoints": gin.H{
|
||||
"auth": "/api/auth (via 萌芽认证中心)",
|
||||
"user": "/api/user",
|
||||
"aimodelapp": "/api/aimodelapp",
|
||||
"site": "/api/site",
|
||||
"admin_site": "/api/admin/site/*",
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
// 健康检查:实际检测数据库连接
|
||||
r.GET("/api/health", func(c *gin.Context) {
|
||||
dbStatus := "connected"
|
||||
if database.DB != nil {
|
||||
sqlDB, err := database.DB.DB()
|
||||
if err != nil || sqlDB.Ping() != nil {
|
||||
dbStatus = "disconnected"
|
||||
}
|
||||
} else {
|
||||
dbStatus = "not_initialized"
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"status": "running",
|
||||
"database": dbStatus,
|
||||
"timestamp": time.Now().Format(time.RFC3339),
|
||||
})
|
||||
})
|
||||
|
||||
auth := r.Group("/api/auth")
|
||||
{
|
||||
auth.GET("/check", middleware.OptionalJWTAuth(), authH.Check)
|
||||
}
|
||||
|
||||
user := r.Group("/api/user", middleware.JWTAuth())
|
||||
{
|
||||
user.GET("/profile", userH.GetProfile)
|
||||
}
|
||||
|
||||
// 站点公开配置(无需登录)
|
||||
r.GET("/api/site/60s-disabled", siteH.Get60sDisabled)
|
||||
r.GET("/api/site/60s-source", siteH.Get60sSource)
|
||||
r.GET("/api/site/ai-model-disabled", siteH.GetAIModelDisabled)
|
||||
r.PUT("/api/admin/site/60s-disabled", siteH.Put60sDisabled)
|
||||
r.PUT("/api/admin/site/60s-source", siteH.Put60sSource)
|
||||
r.PUT("/api/admin/site/ai-model-disabled", siteH.PutAIModelDisabled)
|
||||
r.GET("/api/admin/site/ai-runtime", aiRtH.GetAIRuntime)
|
||||
r.PUT("/api/admin/site/ai-runtime", aiRtH.PutAIRuntime)
|
||||
|
||||
ai := r.Group("/api/aimodelapp")
|
||||
{
|
||||
ai.POST("/chat", middleware.JWTAuth(), aiH.Chat)
|
||||
ai.POST("/name-analysis", middleware.JWTAuth(), aiH.NameAnalysis)
|
||||
ai.POST("/variable-naming", middleware.JWTAuth(), aiH.VariableNaming)
|
||||
ai.POST("/poetry", middleware.JWTAuth(), aiH.Poetry)
|
||||
ai.POST("/translation", middleware.JWTAuth(), aiH.Translation)
|
||||
ai.POST("/classical_conversion", middleware.JWTAuth(), aiH.ClassicalConversion)
|
||||
ai.POST("/expression-maker", middleware.JWTAuth(), aiH.ExpressionMaker)
|
||||
ai.POST("/linux-command", middleware.JWTAuth(), aiH.LinuxCommand)
|
||||
ai.POST("/markdown_formatting", middleware.JWTAuth(), aiH.MarkdownFormatting)
|
||||
ai.POST("/kinship-calculator", middleware.JWTAuth(), aiH.KinshipCalculator)
|
||||
// models 端点添加认证保护
|
||||
ai.GET("/models", middleware.JWTAuth(), aiH.GetModels)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user