keel/examples/middlewares/skip/main.go
Kevin Franklin Kim 07f0c394d5
feat: add GoRoutine service
moves all services into the service package
2023-09-08 12:17:23 +02:00

54 lines
1.1 KiB
Go

package main
import (
"net/http"
"github.com/foomo/keel/service"
"go.uber.org/zap"
"github.com/foomo/keel"
"github.com/foomo/keel/net/http/middleware"
)
func main() {
svr := keel.NewServer()
// get logger
l := svr.Logger()
// create demo service
svs := http.NewServeMux()
svs.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte("OK"))
})
svs.HandleFunc("/skip", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte("OK"))
})
svr.AddServices(
// with URI blacklist
service.NewHTTP(l, "demo", "localhost:8080", svs,
middleware.Skip(
func(l *zap.Logger, name string, next http.Handler) http.Handler {
return http.NotFoundHandler()
},
middleware.RequestURIBlacklistSkipper("/skip"),
),
),
// with URI whitelist
service.NewHTTP(l, "demo", "localhost:8081", svs,
middleware.Skip(
func(l *zap.Logger, name string, next http.Handler) http.Handler {
return http.NotFoundHandler()
},
middleware.RequestURIWhitelistSkipper("/"),
),
),
)
svr.Run()
}