gotest/web/router.go

36 lines
766 B
Go

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))
}