func StartGin() { gin.SetMode(gin.ReleaseMode) router := gin.New() router.Use(rateLimit, gin.Recovery()) router.LoadHTMLGlob("resources/*.templ.html") router.Static("/static", "resources/static") router.GET("/", index) router.GET("/room/:roomid", roomGET) router.POST("/room-post/:roomid", roomPOST) router.GET("/stream/:roomid", streamRoom) router.Run(":80") }
// This function's name is a must. App Engine uses it to drive the requests properly. func init() { // Starts a new Gin instance with no middle-ware r := gin.New() // Define your handlers r.GET("/", func(c *gin.Context) { c.String(200, "Hello World!") }) r.GET("/ping", func(c *gin.Context) { c.String(200, "pong") }) // Handle all requests using net/http http.Handle("/", r) }
func main() { var err error var errd error port := os.Getenv("PORT") if port == "" { log.Fatal("$PORT must be set") } tStr := os.Getenv("REPEAT") repeat, err = strconv.Atoi(tStr) if err != nil { log.Printf("Error converting $REPEAT to an int: %q - Using default\n", err) repeat = 5 } db, errd = sql.Open("postgres", os.Getenv("DATABASE_URL")) if errd != nil { log.Fatalf("Error opening datbase: %q", errd) } router := gin.New() router.Use(gin.Logger()) router.LoadHTMLGlob("templates/*.tmpl.html") router.Static("/static", "static") router.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "index.tmpl.html", nil) }) router.GET("/mark", func(c *gin.Context) { c.String(http.StatusOK, string(blackfriday.MarkdownBasic([]byte("**hi!**")))) }) router.GET("/repeat", repeatHandler) router.GET("/db", dbFunc) router.Run(":" + port) }