-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
main.go
41 lines (34 loc) · 1.01 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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"))
}