feat: better caching headers for images

This commit is contained in:
2026-03-09 13:35:23 +01:00
parent a27b4a66e6
commit 2b07701762
11 changed files with 83 additions and 43 deletions
@@ -1,4 +1,4 @@
package restutil
package rest
import (
"encoding/json"
@@ -1,4 +1,4 @@
package restutil
package rest
import (
"fmt"
+13
View File
@@ -0,0 +1,13 @@
package rest
import "net/http"
type Middeware = func(next http.Handler) http.Handler
func Use(handler http.Handler, middlewares ...Middeware) http.Handler {
for _, middleware := range middlewares {
handler = middleware(handler)
}
return handler
}
+6 -3
View File
@@ -10,14 +10,17 @@ import (
)
type Handler struct {
http.Handler
src pageService
r renderer
}
func New(mux *http.ServeMux, renderer renderer, srv pageService) *Handler {
func New(renderer renderer, srv pageService) *Handler {
mux := http.NewServeMux()
h := &Handler{
src: srv,
r: renderer,
Handler: mux,
src: srv,
r: renderer,
}
mux.HandleFunc("GET /{$}", h.home)
+7 -7
View File
@@ -6,7 +6,7 @@ import (
"net/http"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/images"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/handlers/restutil"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/handlers/rest"
)
func (h *Handler) getImage(w http.ResponseWriter, r *http.Request) {
@@ -14,20 +14,20 @@ func (h *Handler) getImage(w http.ResponseWriter, r *http.Request) {
var err error
options := images.Options{}
options.Height, err = restutil.IntParam(r, "h")
options.Height, err = rest.IntParam(r, "h")
if err != nil {
restutil.SendErr(w, err)
rest.SendErr(w, err)
return
}
options.Width, err = restutil.IntParam(r, "w")
options.Width, err = rest.IntParam(r, "w")
if err != nil {
restutil.SendErr(w, err)
rest.SendErr(w, err)
return
}
options.Quality, err = restutil.IntParam(r, "q")
options.Quality, err = rest.IntParam(r, "q")
if err != nil {
restutil.SendErr(w, err)
rest.SendErr(w, err)
return
}
+5 -2
View File
@@ -9,12 +9,15 @@ import (
)
type Handler struct {
http.Handler
img imageService
}
func New(mux *http.ServeMux, srv imageService) *Handler {
func New(srv imageService) *Handler {
mux := http.NewServeMux()
h := &Handler{
img: srv,
Handler: mux,
img: srv,
}
mux.HandleFunc("GET /images/{uid}", h.getImage)