103 lines
3.7 KiB
Go
103 lines
3.7 KiB
Go
package initialization
|
||
|
||
import (
|
||
"context"
|
||
"fmt"
|
||
"log"
|
||
"net/http"
|
||
"planA/initialization/c"
|
||
"planA/initialization/config"
|
||
"planA/initialization/cron"
|
||
"planA/initialization/golabl"
|
||
"planA/initialization/middle"
|
||
"planA/initialization/mysql"
|
||
"planA/initialization/redis"
|
||
"planA/initialization/router"
|
||
"planA/initialization/sqLite"
|
||
"planA/initialization/validator"
|
||
)
|
||
|
||
func Init() error {
|
||
//初始化上下文
|
||
golabl.Ctx = context.Background()
|
||
// 初始化配置
|
||
configErr := config.Init("")
|
||
if configErr != nil {
|
||
return fmt.Errorf("初始化配置失败: %v", configErr)
|
||
}
|
||
// 初始化 mysql
|
||
mysqlErr := mysql.Init()
|
||
if mysqlErr != nil {
|
||
return fmt.Errorf("初始化mysql失败: %v", mysqlErr)
|
||
}
|
||
// 初始化 redis
|
||
redisErr := redis.Init()
|
||
if redisErr != nil {
|
||
return fmt.Errorf("初始化redis失败: %v", redisErr)
|
||
}
|
||
// 初始化 sqlite
|
||
sqliteErr := sqLite.Init()
|
||
if sqliteErr != nil {
|
||
return fmt.Errorf("初始化sqlite失败: %v", sqliteErr)
|
||
}
|
||
// 初始化验证器
|
||
validator.Init()
|
||
// 初始化定时任务(非阻塞,因此不需要返回错误)
|
||
cron.Init()
|
||
//初始化中间件
|
||
middle.Init()
|
||
//初始化路由
|
||
router.Init()
|
||
//运行 C程序
|
||
c.RunC()
|
||
return nil
|
||
|
||
}
|
||
|
||
// Server 启动服务
|
||
func Server() {
|
||
// 从配置获取端口并启动服务
|
||
port := ":" + golabl.Config.Server.Port
|
||
fmt.Printf("服务器启动在 http://localhost%s\n", port)
|
||
// 打印所有可用端点(控制台输出)
|
||
printAvailableEndpoints()
|
||
// 启动HTTP服务,如果失败则记录致命错误
|
||
log.Fatal(http.ListenAndServe(port, golabl.Router))
|
||
}
|
||
|
||
// printAvailableEndpoints 打印所有可用的API端点
|
||
func printAvailableEndpoints() {
|
||
fmt.Println("\n========== 可用API端点 ==========")
|
||
|
||
fmt.Println("\n【任务管理】")
|
||
fmt.Println(" POST /task/create - 创建新任务")
|
||
fmt.Println(" GET /task/pause/{id} - 暂停任务")
|
||
fmt.Println(" GET /task/resume/{id} - 恢复任务")
|
||
fmt.Println(" GET /task/stop/{id} - 停止任务")
|
||
fmt.Println(" GET /task/over/{id} - 完成任务")
|
||
fmt.Println(" GET /task/get - 获取任务列表(支持查询参数)")
|
||
fmt.Println(" GET /task/getByUserId - 根据用户ID获取任务")
|
||
fmt.Println(" POST /task/setTaskBody - 设置任务内容")
|
||
fmt.Println(" GET /task/b - 运行B程序")
|
||
|
||
fmt.Println("\n【任务导出】")
|
||
fmt.Println(" GET /task/export/exportTaskDetail/{id} - 导出指定任务详情")
|
||
fmt.Println(" GET /task/export/exportTaskDetail/{userId}/{id} - 导出指定用户的指定任务详情")
|
||
fmt.Println(" GET /task/export/get - 获取所有导出任务列表")
|
||
fmt.Println(" GET /task/export/get/{userId} - 获取指定用户的导出任务列表")
|
||
|
||
fmt.Println("\n【商品任务】")
|
||
fmt.Println(" POST /task/goods/add - 添加商品任务")
|
||
fmt.Println(" GET /task/goods/get/{id} - 获取指定商品任务详情")
|
||
fmt.Println(" PUT /task/goods/set/{id} - 更新指定商品任务")
|
||
fmt.Println(" DELETE /task/goods/del/{id} - 删除指定商品任务")
|
||
|
||
fmt.Println("\n【系统工具】")
|
||
fmt.Println(" GET /alive/get - 获取服务存活状态列表")
|
||
fmt.Println(" GET /health - 健康检查")
|
||
fmt.Println(" GET /export/ - 导出文件下载服务")
|
||
fmt.Println(" GET / - 服务欢迎页")
|
||
|
||
fmt.Println("\n=====================================")
|
||
}
|