Middleware
Body Dump
Capture request and response bodies for logging, auditing, or test instrumentation.
BodyDump captures request and response payloads and sends them to an observer.
Quick start
Section titled “Quick start”app.Use(middleware.BodyDump(func(c *zinc.Context, snapshot middleware.BodyDumpSnapshot) { slog.Info("body_dump", "route", snapshot.RoutePath, "status", snapshot.Status, "request_bytes", snapshot.RequestBytes, "response_bytes", snapshot.ResponseBytes, )}))Config fields
Section titled “Config fields”| Field | Meaning |
|---|---|
Skipper |
Skip capture for selected requests |
Observe |
Required observer callback |
Redact |
Mutate the snapshot before observation |
MaxRequestBytes |
Capture limit for the request body |
MaxResponseBytes |
Capture limit for the response body |
Snapshot fields
Section titled “Snapshot fields”BodyDumpSnapshot includes:
MethodPathRoutePathStatusRequestBodyResponseBodyRequestBytesResponseBytesRequestTruncatedResponseTruncatedError
Redaction example
Section titled “Redaction example”app.Use(middleware.BodyDumpWithConfig(middleware.BodyDumpConfig{ Observe: func(_ *zinc.Context, snapshot middleware.BodyDumpSnapshot) { // send to logs, audit pipeline, or tests }, Redact: func(_ *zinc.Context, snapshot *middleware.BodyDumpSnapshot) { snapshot.RequestBody = []byte("[redacted]") }, MaxRequestBytes: 64 << 10, MaxResponseBytes: 64 << 10,}))Good fit
Section titled “Good fit”Use this for debugging, auditing, and integration tests. Avoid it on very high-volume routes unless you are deliberate about truncation and redaction.