36 lines
766 B
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))
|
|
}
|