summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Neumann <necoro@necoro.eu>2024-02-11 00:49:14 +0100
committerRené Neumann <necoro@necoro.eu>2024-02-11 00:49:14 +0100
commit09cb0762553494f2e31f4a7dc60c0c4ba09e91a1 (patch)
treebe8b25184ef4b574a820746e53aa2f2078b1962e
parent91d14e414fc9c451879e834d7866ad765084a836 (diff)
downloadgosten-09cb0762553494f2e31f4a7dc60c0c4ba09e91a1.tar.gz
gosten-09cb0762553494f2e31f4a7dc60c0c4ba09e91a1.tar.bz2
gosten-09cb0762553494f2e31f4a7dc60c0c4ba09e91a1.zip
Use `chi` as router
-rw-r--r--go.mod1
-rw-r--r--go.sum2
-rw-r--r--main.go16
3 files changed, 17 insertions, 2 deletions
diff --git a/go.mod b/go.mod
index 48df7c2..de5cbba 100644
--- a/go.mod
+++ b/go.mod
@@ -3,6 +3,7 @@ module gosten
go 1.22
require (
+ github.com/go-chi/chi/v5 v5.0.11
github.com/mattn/go-sqlite3 v1.14.22
modernc.org/sqlite v1.28.0
)
diff --git a/go.sum b/go.sum
index 58b2349..a8e5e07 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,7 @@
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
+github.com/go-chi/chi/v5 v5.0.11 h1:BnpYbFZ3T3S1WMpD79r7R5ThWX40TaFB7L31Y8xqSwA=
+github.com/go-chi/chi/v5 v5.0.11/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ=
diff --git a/main.go b/main.go
index b8d2436..dd735a1 100644
--- a/main.go
+++ b/main.go
@@ -11,6 +11,9 @@ import (
"gosten/model"
"gosten/templ"
+
+ "github.com/go-chi/chi/v5"
+ "github.com/go-chi/chi/v5/middleware"
)
// flags
@@ -35,10 +38,19 @@ func main() {
queries := model.New(db)
_, err = queries.GetUsers(context.Background())
- http.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) {
+ r := chi.NewRouter()
+
+ // A good base middleware stack
+ r.Use(middleware.RequestID)
+ r.Use(middleware.RealIP)
+ r.Use(middleware.CleanPath)
+ r.Use(middleware.Logger)
+ r.Use(middleware.Recoverer)
+
+ r.Get("/", func(w http.ResponseWriter, _ *http.Request) {
templ.Lookup("index").Execute(w, nil)
})
address := net.JoinHostPort(host, strconv.FormatUint(port, 10))
- log.Fatal(http.ListenAndServe(address, nil))
+ log.Fatal(http.ListenAndServe(address, r))
}