Files
cmii-uav-watchdog-project/cmii-uav-watchdog-agent/main.go
2025-03-14 17:29:09 +08:00

70 lines
1.7 KiB
Go

package main
import (
"cmii-uav-watchdog-agent/services"
"fmt"
"github.com/gin-gonic/gin"
"net/http"
"os"
"os/signal"
"syscall"
)
func main() {
// 创建一个默认的 Gin 路由
var r = gin.Default() // 定义一个 GET 路由
r.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": "pong"})
})
// 定义一个 POST 路由
r.POST("/echo", func(c *gin.Context) {
var json map[string]interface{}
if err := c.ShouldBindJSON(&json); err == nil {
c.JSON(http.StatusOK, json)
} else {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
}
})
r.GET("/cpu", func(c *gin.Context) {
cpuInfo := services.GetCPUInfo() // 直接返回 CPU 信息
c.JSON(http.StatusOK, cpuInfo)
})
r.GET("/memory", func(c *gin.Context) {
memInfo := services.GetMemoryInfo() // 直接返回内存信息
c.JSON(http.StatusOK, memInfo)
})
r.GET("/disk", func(c *gin.Context) {
diskInfo := services.GetDiskInfo() // 直接返回磁盘信息
c.JSON(http.StatusOK, diskInfo)
})
r.GET("/motherboard", func(c *gin.Context) {
mbInfo := services.GetMotherboardInfo() // 直接返回主板信息
c.JSON(http.StatusOK, mbInfo)
})
r.GET("/network", func(c *gin.Context) {
networkInterfaces := services.GetNetworkInterfaces()
c.JSON(http.StatusOK, networkInterfaces)
})
r.GET("/all", func(c *gin.Context) {
allInfo := services.GetAllInfo()
c.JSON(http.StatusOK, allInfo)
})
//r.GET("/phy", func(c *gin.Context) {
// allInfo, _ := services.GetPVForLV()
// c.JSON(http.StatusOK, allInfo)
//})
// 启动服务,监听在 8080 端口
r.Run(":8098")
// 等待终止信号
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
<-sigs
fmt.Println("Shutting down service...")
}