package web import ( "fmt" "net/http" "github.com/gorilla/mux" log "github.com/sirupsen/logrus" "github.com/spf13/viper" ) func router() *mux.Router { r := mux.NewRouter() r.HandleFunc("/", root) return r } func root(resp http.ResponseWriter, req *http.Request) { logger := LoggerFromContext(req.Context()) if req.URL.Path != "/" { http.NotFound(resp, req) logger.Warning("404 Not found") return } fmt.Fprintf(resp, "Hello World!") logger.Info("root page") } // RunServer runs the webserver with the router and middleware func RunServer() { router := middleware(router()) addr := viper.GetString("addr") log.WithFields(log.Fields{"addr": addr}).Info("Webserver starting") log.Fatal(http.ListenAndServe(viper.GetString("addr"), router)) }