api.go 1.5 KB

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