From d4f2fbd5e1d8c07e2d9d72f623e7bcdf1e432742 Mon Sep 17 00:00:00 2001 From: luziqi Date: Tue, 25 Jul 2023 15:13:09 +0800 Subject: [PATCH] =?UTF-8?q?changed:=20=E5=B0=81=E8=A3=85api=E8=B7=AF?= =?UTF-8?q?=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 92 ++---------------------------------------------- router/router.go | 53 ++++++++++++++++++++++++++++ router/v1.go | 42 ++++++++++++++++++++++ router/v2.go | 19 ++++++++++ 4 files changed, 117 insertions(+), 89 deletions(-) create mode 100644 router/router.go create mode 100644 router/v1.go create mode 100644 router/v2.go diff --git a/main.go b/main.go index 8e476df..550c363 100644 --- a/main.go +++ b/main.go @@ -1,23 +1,16 @@ package main import ( - "autogo/controllers" "autogo/crontask" "autogo/dbsql" - "autogo/device" - "autogo/monkey" - "autogo/qatool" + "autogo/router" "flag" "fmt" - "net/http" "os" _ "autogo/docs" - "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" - swaggerFiles "github.com/swaggo/files" - ginSwagger "github.com/swaggo/gin-swagger" ) var ( @@ -54,88 +47,9 @@ func main() { port := ":6364" - // 1.创建路由 - r := gin.Default() - r.Use(Cors()) - r.GET("/", func(c *gin.Context) { - c.String(http.StatusOK, "hello World!") - }) - - r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) - r.GET("/test", controllers.Test) - // monkey - r.POST("/api/monkey/v1/create_task", monkey.CreateTask) - r.POST("/api/monkey/v1/task/status", monkey.UpdateTaskStatus) - r.POST("/api/monkey/v1/task/result", monkey.UploadMonkeyResult) - r.POST("/api/monkey/v1/task/stop", monkey.StopMonkeyTask) - r.POST("/api/monkey/v1/task/pid", monkey.UpdatePids) - r.POST("/api/monkey/v1/task/update_devices", monkey.UpdateDevices) - r.GET("/api/monkey/v1/task/result", monkey.GetMonkeyResult) - r.POST("/api/monkey/v1/task/activity", monkey.UpdataActivity) - r.GET("/api/monkey/v1/task/activity", monkey.GetMonkeyActivities) - r.GET("/api/monkey/v1/tasks", monkey.GetTasks) - r.GET("/api/monkey/v1/task", monkey.GetTaskById) - r.GET("/api/monkey/v1/task/devices", monkey.GetDevicesByTaskId) - r.GET("/api/monkey/v1/devices", monkey.GetDevices) - r.POST("/api/monkey/v1/task/crash_count", monkey.UpdateTaskCrashCount) - r.PUT("/webdav/monkey/task/:id/:filename", monkey.TaskReport) - - // - - // device - r.GET("/api/device/v1/list", device.GetDevices) - r.GET("/api/device/v1/get_device", device.GetDeviceByUdid) - r.POST("/api/device/v1/create", device.CreateDevice) - r.POST("/api/device/v1/update", device.UpdateDevice) - r.DELETE("/api/device/v1/delete/:id", device.DeleteDevice) - r.POST("/api/device/v1/update_status", device.UpdateDeviceStatus) - r.POST("/api/device/v1/opt/install", device.InstallApp) - - // 工具接口 - r.GET("/api/tool/v1/voice/list", qatool.GetVoiceTestData) - - ///// v2 - // monkey v2 - r.POST("/api/monkey/v2/create_task", monkey.CreateTaskV2) - r.POST("/api/monkey/v2/task/handle/set", monkey.UpdateHandleStatus) - r.GET("/api/monkey/v2/task/command", monkey.GetTaskCommand) - r.POST("/api/monkey/v2/task/store_anomaly", monkey.StoreMonkeyAnomaly) - r.GET("/api/monkey/v2/task/get_anomalies", monkey.GetMonkeyAnomaliesByTaskId) - - r.GET("/api/setting/v2/get_bugly_token", controllers.GetBuglyToken) - r.POST("/api/setting/v2/update_bugly_token", controllers.UpdateBuglyToken) + // 创建路由 + r := router.InitRoute() r.Run(port) } - -func Cors() gin.HandlerFunc { - return func(c *gin.Context) { - method := c.Request.Method - origin := c.Request.Header.Get("Origin") //请求头部 - if origin != "" { - //接收客户端发送的origin (重要!) - c.Writer.Header().Set("Access-Control-Allow-Origin", origin) - //服务器支持的所有跨域请求的方法 - c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE") - //允许跨域设置可以返回其他子段,可以自定义字段 - c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, X-CSRF-Token, Token,session, Origin, X-Requested-With, Content-Type, Accept") - //允许浏览器(客户端)可以解析的头部 (重要) - c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type") - //设置缓存时间 - c.Header("Access-Control-Max-Age", "172800") - //允许客户端传递校验信息比如 cookie (重要) - c.Header("Access-Control-Allow-Credentials", "true") - } - //允许类型校验 - if method == "OPTIONS" { - c.JSON(http.StatusOK, "ok!") - } - defer func() { - if err := recover(); err != nil { - log.Error("Panic info is: %v", err) - } - }() - c.Next() - } -} diff --git a/router/router.go b/router/router.go new file mode 100644 index 0000000..401d048 --- /dev/null +++ b/router/router.go @@ -0,0 +1,53 @@ +package router + +import ( + "fmt" + "net/http" + + "github.com/gin-gonic/gin" +) + +func InitRoute() *gin.Engine { + r := gin.Default() + r.Use(Cors()) + r.GET("/", func(c *gin.Context) { + c.String(http.StatusOK, "hello World!") + }) + + setRoute(r) + + setRouteV2(r) + + return r +} + +func Cors() gin.HandlerFunc { + return func(c *gin.Context) { + method := c.Request.Method + origin := c.Request.Header.Get("Origin") //请求头部 + if origin != "" { + //接收客户端发送的origin (重要!) + c.Writer.Header().Set("Access-Control-Allow-Origin", origin) + //服务器支持的所有跨域请求的方法 + c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE") + //允许跨域设置可以返回其他子段,可以自定义字段 + c.Header("Access-Control-Allow-Headers", "Authorization, Content-Length, X-CSRF-Token, Token,session, Origin, X-Requested-With, Content-Type, Accept") + //允许浏览器(客户端)可以解析的头部 (重要) + c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type") + //设置缓存时间 + c.Header("Access-Control-Max-Age", "172800") + //允许客户端传递校验信息比如 cookie (重要) + c.Header("Access-Control-Allow-Credentials", "true") + } + //允许类型校验 + if method == "OPTIONS" { + c.JSON(http.StatusOK, "ok!") + } + defer func() { + if err := recover(); err != nil { + fmt.Println("Panic info is: %v", err) + } + }() + c.Next() + } +} diff --git a/router/v1.go b/router/v1.go new file mode 100644 index 0000000..0b43b3a --- /dev/null +++ b/router/v1.go @@ -0,0 +1,42 @@ +package router + +import ( + "autogo/device" + "autogo/monkey" + "autogo/qatool" + + "github.com/gin-gonic/gin" +) + +func setRoute(r *gin.Engine) { + // monkey + r.POST("/api/monkey/v1/create_task", monkey.CreateTask) + r.POST("/api/monkey/v1/task/status", monkey.UpdateTaskStatus) + r.POST("/api/monkey/v1/task/result", monkey.UploadMonkeyResult) + r.POST("/api/monkey/v1/task/stop", monkey.StopMonkeyTask) + r.POST("/api/monkey/v1/task/pid", monkey.UpdatePids) + r.POST("/api/monkey/v1/task/update_devices", monkey.UpdateDevices) + r.GET("/api/monkey/v1/task/result", monkey.GetMonkeyResult) + r.POST("/api/monkey/v1/task/activity", monkey.UpdataActivity) + r.GET("/api/monkey/v1/task/activity", monkey.GetMonkeyActivities) + r.GET("/api/monkey/v1/tasks", monkey.GetTasks) + r.GET("/api/monkey/v1/task", monkey.GetTaskById) + r.GET("/api/monkey/v1/task/devices", monkey.GetDevicesByTaskId) + r.GET("/api/monkey/v1/devices", monkey.GetDevices) + r.POST("/api/monkey/v1/task/crash_count", monkey.UpdateTaskCrashCount) + r.PUT("/webdav/monkey/task/:id/:filename", monkey.TaskReport) + + // + + // device + r.GET("/api/device/v1/list", device.GetDevices) + r.GET("/api/device/v1/get_device", device.GetDeviceByUdid) + r.POST("/api/device/v1/create", device.CreateDevice) + r.POST("/api/device/v1/update", device.UpdateDevice) + r.DELETE("/api/device/v1/delete/:id", device.DeleteDevice) + r.POST("/api/device/v1/update_status", device.UpdateDeviceStatus) + r.POST("/api/device/v1/opt/install", device.InstallApp) + + // 工具接口 + r.GET("/api/tool/v1/voice/list", qatool.GetVoiceTestData) +} diff --git a/router/v2.go b/router/v2.go new file mode 100644 index 0000000..5c0fc8e --- /dev/null +++ b/router/v2.go @@ -0,0 +1,19 @@ +package router + +import ( + "autogo/controllers" + "autogo/monkey" + + "github.com/gin-gonic/gin" +) + +func setRouteV2(r *gin.Engine) { + r.POST("/api/monkey/v2/create_task", monkey.CreateTaskV2) + r.POST("/api/monkey/v2/task/handle/set", monkey.UpdateHandleStatus) + r.GET("/api/monkey/v2/task/command", monkey.GetTaskCommand) + r.POST("/api/monkey/v2/task/store_anomaly", monkey.StoreMonkeyAnomaly) + r.GET("/api/monkey/v2/task/get_anomalies", monkey.GetMonkeyAnomaliesByTaskId) + + r.GET("/api/setting/v2/get_bugly_token", controllers.GetBuglyToken) + r.POST("/api/setting/v2/update_bugly_token", controllers.UpdateBuglyToken) +}