iris/_examples/convert-handlers/negroni-like/main.go
Gerasimos (Makis) Maropoulos 0f113dfcda (#1554) Add support for all common compressions (write and read)
- Remove the context.Context interface and export the *context, the iris.Context now points to the pointer\nSupport compression and rate limiting in the FileServer\nBit of code organisation


Former-commit-id: ad1c61bf968059510c6be9e7f2cceec7da70ba17
2020-07-10 23:21:09 +03:00

42 lines
1.0 KiB
Go

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("<h1> Home </h1>")
// 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"))
}