70 lines
1.7 KiB
Go
70 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"cmii-uav-watchdog-agent/host_info"
|
|
"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...")
|
|
}
|