๐Middleware Chain LabLAB
Middleware Chain Lab
Build a three-layer middleware chain for an HTTP server tested with httptest.
Middleware to implement
-
RequestID(next http.Handler) http.Handlerโ generates a unique request ID (use a simple counter orfmt.Sprintf("req-%d", n)), sets it in the request context under keyctxKey("requestID"), and addsX-Request-IDheader to the response. -
Logger(next http.Handler) http.Handlerโ reads the request ID from context and prints[requestID] METHOD PATH. -
RequireToken(next http.Handler) http.Handlerโ checksX-Tokenheader equals"secret". Returns 403 if not.
Chain
main()
Test the chain with two httptest requests:
- One with
X-Token: secretโ should succeed (print request ID log + "hello") - One without token โ should return 403
Expected output (approximate)
โ Enter (Mac) ยท Ctrl+Enter (Win/Linux)
โ Enter (Mac) ยท Ctrl+Enter (Win/Linux)