Create an empty file, let's assume its name is example.go, then open it and copy-paste the below code.
packagemainimport"github.com/kataras/iris/v12"typePingResponsestruct { Message string`json:"message"`}funcmain() { app := iris.New() app.Use(myMiddleware) app.Get("/ping", func(ctx iris.Context) { res :=PingResponse{ Message: "pong", } ctx.JSON(res) })/* Same as: app.Handle("GET", "/ping", func(ctx iris.Context) { ctx.JSON(iris.Map{ "message": "pong", }) }) */// Listens and serves incoming http requests// on http://localhost:8080. app.Listen(":8080")}funcmyMiddleware(ctx iris.Context) { ctx.Application().Logger().Infof("Runs before %s", ctx.Path()) ctx.Next()}
Start a terminal session and execute the following.
# run example.go and visit http://localhost:8080/ping on browser$gomodtidy$gorunexample.go
Show me more!
Let's take a small overview of how easy is to get up and running.
packagemainimport"github.com/kataras/iris/v12"funcmain() { app := iris.New()// Load all templates from the "./views" folder// where extension is ".html" and parse them// using the standard `html/template` package. app.RegisterView(iris.HTML("./views", ".html"))// Method: GET// Resource: http://localhost:8080 app.Get("/", func(ctx iris.Context) {// Bind: {{.message}} with "Hello world!" ctx.ViewData("message", "Hello world!")// Render template file: ./views/hello.html ctx.View("hello.html") })// Method: GET// Resource: http://localhost:8080/user/42//// Need to use a custom regexp instead?// Easy;// Just mark the parameter's type to 'string'// which accepts anything and make use of// its `regexp` macro function, i.e:// app.Get("/user/{id:string regexp(^[0-9]+$)}") app.Get("/user/{id:uint64}", func(ctx iris.Context) { userID, _ := ctx.Params().GetUint64("id") ctx.Writef("User ID: %d", userID) })// Start the server using a network address. app.Listen(":8080")}