api.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package route
  2. import (
  3. "crawler/controller"
  4. "crawler/service"
  5. "fmt"
  6. "time"
  7. "github.com/gin-gonic/gin"
  8. )
  9. var (
  10. MovieController = new(controller.Movie)
  11. CronController = new(controller.Cron)
  12. G2AController = new(controller.G2A)
  13. )
  14. // 라우터 설정
  15. func SetRoute(app *gin.Engine) {
  16. NoRoute(app) // 404
  17. CronRoute(app) // Cron schedule
  18. MovieRoute(app) // 영화 API
  19. G2ARoute(app) // G2A API
  20. defer func() {
  21. if c := recover(); c != nil {
  22. fmt.Println("Recover route execute !!")
  23. }
  24. }()
  25. app.GET("/ping", func(c *gin.Context) {
  26. c.JSON(200, gin.H{
  27. "message": "pong",
  28. })
  29. })
  30. app.GET("/db", func(c *gin.Context) {
  31. t := time.Now()
  32. var x int
  33. _ = service.DB_MOVIEW.SQLDB.QueryRow("SELECT 1").Scan(&x)
  34. c.JSON(200, gin.H{"ms": time.Since(t).Milliseconds()})
  35. })
  36. }
  37. func NoRoute(app *gin.Engine) {
  38. app.NoRoute(func(c *gin.Context) {
  39. c.File("index.html")
  40. })
  41. }
  42. func MovieRoute(app *gin.Engine) {
  43. r := app.Group("/movie")
  44. r.GET("/searchDailyBoxOfficeList", MovieController.SearchDailyBoxOfficeList)
  45. r.GET("/searchWeeklyBoxOfficeList", MovieController.SearchWeeklyBoxOfficeList)
  46. r.GET("/searchMovieList", MovieController.SearchMovieList)
  47. r.GET("/searchDailyInfo", MovieController.SearchDailyInfo)
  48. r.GET("/searchWeeklyInfo", MovieController.SearchWeeklyInfo)
  49. r.GET("/searchMovieInfo", MovieController.SearchMovieInfo)
  50. }
  51. func CronRoute(app *gin.Engine) {
  52. r := app.Group("/cron")
  53. r.GET("/list", CronController.List)
  54. r.GET("/info", CronController.Info)
  55. r.GET("/detail", CronController.Detail)
  56. //r.GET("/stats", CronController.Stats)
  57. }
  58. func G2ARoute(app *gin.Engine) {
  59. r := app.Group("/g2a")
  60. r.GET("/products", G2AController.Products)
  61. r.GET("/checkOutOfStock", G2AController.CheckOutOfStock)
  62. r.GET("/order", G2AController.Order)
  63. }