Merge pull request 'Added WithMaxBytes middleware' (#2) from dev into main
This commit was merged in pull request #2.
This commit is contained in:
@@ -53,7 +53,7 @@ func run(serviceName string, serviceVersion string) error {
|
|||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
if err := shutdownTelemetry(shutdownCtx); err != nil {
|
if err := shutdownTelemetry(shutdownCtx); err != nil {
|
||||||
slog.Error("Failed to shutdown telemetry", err)
|
slog.Error("Failed to shutdown telemetry", slog.Any("error", err))
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -14,8 +14,6 @@ type CreateListPayload struct {
|
|||||||
func DecodeCreateList(r *http.Request) (CreateListPayload, error) {
|
func DecodeCreateList(r *http.Request) (CreateListPayload, error) {
|
||||||
var payload CreateListPayload
|
var payload CreateListPayload
|
||||||
|
|
||||||
r.Body = http.MaxBytesReader(nil, r.Body, 1024*64)
|
|
||||||
|
|
||||||
decoder := json.NewDecoder(r.Body)
|
decoder := json.NewDecoder(r.Body)
|
||||||
decoder.DisallowUnknownFields()
|
decoder.DisallowUnknownFields()
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ func NewMux(cfg Config) http.Handler {
|
|||||||
mux.HandleFunc("POST /lists", listHandler.CreateList)
|
mux.HandleFunc("POST /lists", listHandler.CreateList)
|
||||||
|
|
||||||
var httpHandler http.Handler = mux
|
var httpHandler http.Handler = mux
|
||||||
|
httpHandler = middleware.WithMaxBytes(1024 * 64)(httpHandler)
|
||||||
httpHandler = middleware.WithTelemetry(httpHandler)
|
httpHandler = middleware.WithTelemetry(httpHandler)
|
||||||
|
|
||||||
return httpHandler
|
return httpHandler
|
||||||
|
|||||||
Reference in New Issue
Block a user