http/

directory
v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 31, 2024 License: MIT

README

http

Contains http components to integrate with gogox std lib

log

LoggingMiddleware provides middleware to automatically log your HTTP request and response.

func dummyHandler(w http.ResponseWriter, r *http.Request) {
  w.Write([]byte("OK"))
}

mux := http.NewServeMux()

logrus := logrus.New()
logrus.SetFormatter(&logrus.JSONFormatter{})
logrus.SetLevel(logrus.DebugLevel)
logger := gogox_logrus.New(logrus, nil)

mux.Handle("/", log.LoggingMiddleware(logger, dummyHandler, log.DefaultOptions()))

You can provide options to control the middlware.

opts := log.DefaultOptions()
// Do not log if url is something
opts.ShouldLog = func(req *http.Request, status int) bool {
  if req.URL == "something" {
    return false
  }
  return true
}

mux.Handle("/", log.LoggingMiddleware(logger, dummyHandler, opts))

trace

TraceMiddlware provides middleware to automatically inject traceID for your HTTP request. It also inject the traceField into log metadata.

func dummyHandler(w http.ResponseWriter, r *http.Request) {
  w.Write([]byte("OK"))
}

mux := http.NewServeMux()

// your-trace-field is used for log metadata
// X-Trace-ID is used for setting request header
mux.Handle("/", trace.TraceMiddlware("your-trace-field", "X-Trace-ID", dummyHandler))

gateway

Contains grpc gateway components to ingetate with gogox std lib.

ErrorHandler defines handler for error response. It will parse the status error into gogox grpc error errorx.GrpcError.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL