From 10a34387ef5935b493e2836601c3cb5284280c2a Mon Sep 17 00:00:00 2001 From: Robin Dittmar Date: Mon, 20 Jul 2026 20:04:24 +0200 Subject: [PATCH 1/2] Added "error" key to telemetry shutdown log --- cmd/api-server/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/api-server/main.go b/cmd/api-server/main.go index e654bee..5d4988c 100644 --- a/cmd/api-server/main.go +++ b/cmd/api-server/main.go @@ -53,7 +53,7 @@ func run(serviceName string, serviceVersion string) error { defer cancel() if err := shutdownTelemetry(shutdownCtx); err != nil { - slog.Error("Failed to shutdown telemetry", err) + slog.Error("Failed to shutdown telemetry", slog.Any("error", err)) } }() -- 2.54.0 From caf79e0dff9fc07668390cc04d8beb8d3d18cec2 Mon Sep 17 00:00:00 2001 From: Robin Dittmar Date: Mon, 20 Jul 2026 20:12:45 +0200 Subject: [PATCH 2/2] Added "WithMaxBytes" middleware --- internal/api/middleware/limit.go | 13 +++++++++++++ internal/api/request/list.go | 2 -- internal/api/router/router.go | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 internal/api/middleware/limit.go diff --git a/internal/api/middleware/limit.go b/internal/api/middleware/limit.go new file mode 100644 index 0000000..e70c238 --- /dev/null +++ b/internal/api/middleware/limit.go @@ -0,0 +1,13 @@ +package middleware + +import "net/http" + +func WithMaxBytes(limit int64) func(http.Handler) http.Handler { + return func(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + r.Body = http.MaxBytesReader(w, r.Body, limit) + + next.ServeHTTP(w, r) + }) + } +} diff --git a/internal/api/request/list.go b/internal/api/request/list.go index be4f909..f9c88e3 100644 --- a/internal/api/request/list.go +++ b/internal/api/request/list.go @@ -14,8 +14,6 @@ type CreateListPayload struct { func DecodeCreateList(r *http.Request) (CreateListPayload, error) { var payload CreateListPayload - r.Body = http.MaxBytesReader(nil, r.Body, 1024*64) - decoder := json.NewDecoder(r.Body) decoder.DisallowUnknownFields() diff --git a/internal/api/router/router.go b/internal/api/router/router.go index 8ca038f..a6cf4b7 100644 --- a/internal/api/router/router.go +++ b/internal/api/router/router.go @@ -28,6 +28,7 @@ func NewMux(cfg Config) http.Handler { mux.HandleFunc("POST /lists", listHandler.CreateList) var httpHandler http.Handler = mux + httpHandler = middleware.WithMaxBytes(1024 * 64)(httpHandler) httpHandler = middleware.WithTelemetry(httpHandler) return httpHandler -- 2.54.0