package main
import (
"net/http"
"github.com/kataras/iris/v12"
)
func main() {
app := iris.New()
irisMiddleware := iris.FromStd(negronilikeTestMiddleware)
app.Use(irisMiddleware)
// Method GET: http://localhost:8080/
app.Get("/", func(ctx iris.Context) {
ctx.HTML("
Home
")
// this will print an error,
// this route's handler will never be executed because the middleware's criteria not passed.
})
// Method GET: http://localhost:8080/ok
app.Get("/ok", func(ctx iris.Context) {
ctx.Writef("Hello world!")
// this will print "OK. Hello world!".
})
// http://localhost:8080
// http://localhost:8080/ok
app.Listen(":8080")
}
func negronilikeTestMiddleware(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
if r.URL.Path == "/ok" && r.Method == "GET" {
w.Write([]byte("OK. "))
next(w, r) // go to the next route's handler
return
}
// else print an error and do not forward to the route's handler.
w.WriteHeader(iris.StatusBadRequest)
w.Write([]byte("Bad request"))
}