HTTP Servers
Middleware Headers
Middleware-style helper code can add headers around a handler result.
Middleware Headers
middleware_headers.go
package main
import "fmt"
type reply struct {
Status int
Body string
Headers map[string]string
}
func addRequestID(res reply, requestID string) reply {
res.Headers["X-Request-ID"] = requestID
return res
}
func main() {
var requestID =
res := reply{Status: 200, Body: "ok", Headers: map[string]string{}}
res = addRequestID(res, requestID)
fmt.Println("status=", res.Status)
fmt.Println("body=", res.Body)
fmt.Println("requestID=", res.Headers["X-Request-ID"])
}
package main
import "fmt"
type reply struct {
Status int
Body string
Headers map[string]string
}
func addRequestID(res reply, requestID string) reply {
res.Headers["X-Request-ID"] = requestID
return res
}
func main() {
var requestID =
res := reply{Status: 200, Body: "ok", Headers: map[string]string{}}
res = addRequestID(res, requestID)
fmt.Println("status=", res.Status)
fmt.Println("body=", res.Body)
fmt.Println("requestID=", res.Headers["X-Request-ID"])
}
package main
import "fmt"
type reply struct {
Status int
Body string
Headers map[string]string
}
func addRequestID(res reply, requestID string) reply {
res.Headers["X-Request-ID"] = requestID
return res
}
func main() {
var requestID =
res := reply{Status: 200, Body: "ok", Headers: map[string]string{}}
res = addRequestID(res, requestID)
fmt.Println("status=", res.Status)
fmt.Println("body=", res.Body)
fmt.Println("requestID=", res.Headers["X-Request-ID"])
}
middleware
Middleware wraps handler logic so shared behavior, such as headers, stays in one place.