router.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package routers
  2. import (
  3. "encoding/json"
  4. "github.com/astaxie/beego"
  5. "github.com/astaxie/beego/context"
  6. "github.com/astaxie/beego/logs"
  7. "net/http"
  8. config2 "server/config"
  9. "server/controllers"
  10. "strings"
  11. )
  12. func init() {
  13. config := config2.Config
  14. ns := beego.NewNamespace(config.BaseApi,
  15. beego.NSRouter("/nginx", &controllers.NginxController{}),
  16. beego.NSRouter("/nginx/:id", &controllers.NginxController{}, "get:GetNginx"),
  17. beego.NSRouter("/nginx/:id", &controllers.NginxController{}, "delete:DelNginx"),
  18. beego.NSRouter("/http/refresh", &controllers.NginxController{}, "post:RefreshHttp"),
  19. beego.NSRouter("/nginx/:id/start", &controllers.NginxController{}, "post:StartNginx"),
  20. beego.NSRouter("/nginx/:id/stop", &controllers.NginxController{}, "post:StopNginx"),
  21. beego.NSRouter("/nginx/:id/status", &controllers.NginxController{}, "post:StatusNginx"),
  22. // certs
  23. beego.NSRouter("/nginx/:id/certs", &controllers.CertController{}),
  24. beego.NSRouter("/nginx/:id/certs/sync", &controllers.CertController{}, "post:Sync"),
  25. // nginx server apis
  26. beego.NSRouter("/server", &controllers.ServerController{}),
  27. beego.NSRouter("/server/refresh", &controllers.ServerController{}, "post:Refresh"),
  28. // file upload download
  29. beego.NSRouter("/file", &controllers.FileController{}),
  30. beego.NSRouter("/file/deploy", &controllers.FileController{}, "post:Deploy"),
  31. )
  32. beego.AddNamespace(ns)
  33. beego.Router("/nginx-ui/config.js", &controllers.ConfigController{})
  34. // portal static assets
  35. beego.SetStaticPath("/nginx-ui", "static/web")
  36. beego.SetStaticPath("/web", "static/web")
  37. beego.Get("/", func(ctx *context.Context) {
  38. ctx.Redirect(301, "/nginx-ui/index.html")
  39. })
  40. beego.ErrorHandler("404", func(writer http.ResponseWriter, request *http.Request) {
  41. accept := request.Header.Get("accept")
  42. logs.Warn("404", accept)
  43. if strings.Contains(accept, "json") {
  44. writer.Header().Set("content-type", "application/json")
  45. writer.WriteHeader(200)
  46. resp := controllers.RespData{
  47. Code: -2,
  48. Msg: "server error",
  49. }
  50. str, _ := json.Marshal(&resp)
  51. writer.Write(str)
  52. } else {
  53. writer.WriteHeader(404)
  54. writer.Write([]byte(""))
  55. }
  56. })
  57. }