code: func RequestID(next http.Handler) http.Handler {
  	fn := func(w http.ResponseWriter, r *http.Request) {
  		ctx := r.Context()
  		requestID := r.Header.Get("X-Request-Id")
  		if requestID == "" {
  			myid := atomic.AddUint64(&reqid, 1)
  			requestID = fmt.Sprintf("%s-%06d", prefix, myid)
  		}
  		ctx = context.WithValue(ctx, RequestIDKey, requestID)
  		next.ServeHTTP(w, r.WithContext(ctx))
  	}
  	return http.HandlerFunc(fn)
  }
docs: // RequestID is a middleware that injects a request ID into the context of each
  // request. A request ID is a string of the form "host.example.com/random-0001",
  // where "random" is a base62 random string that uniquely identifies this go
  // process, and where the last number is an atomically incremented request
  // counter.