package main import ( "github.com/kataras/iris/v12" ) func main() { app := newApp() app.Logger().SetLevel("debug") app.Listen(":8080") } type payload struct { Message string `json:"message"` } func newApp() *iris.Application { app := iris.New() // GzipReader is a middleware which enables gzip decompression, // when client sends gzip compressed data. // // A shortcut of: // func(ctx iris.Context) { // ctx.GzipReader(true) // ctx.Next() // } app.Use(iris.GzipReader) app.Post("/", func(ctx iris.Context) { // Bind incoming gzip compressed JSON to "p". var p payload if err := ctx.ReadJSON(&p); err != nil { ctx.StopWithError(iris.StatusBadRequest, err) return } // Send back the message as plain text. ctx.WriteString(p.Message) }) return app }