httputil

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InstrumentHandler added in v0.13.0

func InstrumentHandler(handler http.Handler) http.Handler

InstrumentHandler instruments a http.Handler. Instrumented handlers are required to set the http.route attribute to the span if available.

If CORS is in use, it's the wrapped handler's responsibility to allow the traceresponse header.

SEE: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#http-server-semantic-conventions

func ResolveRequestURL

func ResolveRequestURL(r *http.Request) (*url.URL, error)

func SpanFromRequest added in v0.13.0

func SpanFromRequest(r *http.Request) (context.Context, trace.Span)

SpanFromRequest returns the current span for a handler instrumented using InstrumentHandler. Panics if handler is not instrumented. A span received this way MUST NOT be manually closed. It is closed once the instrumented handler completed the request.

Types

type Client

type Client struct {
	http.Client

	UserAgent string
	// contains filtered or unexported fields
}

func NewClient

func NewClient(cache cache.Cache, maxAge time.Duration) *Client

func (*Client) CacheKey

func (c *Client) CacheKey(req *http.Request) string

func (*Client) Collect

func (c *Client) Collect(ch chan<- prometheus.Metric)

Collect implements prometheus.Collector.

func (*Client) Describe

func (c *Client) Describe(descs chan<- *prometheus.Desc)

Describe implements prometheus.Collector.

func (*Client) Do

func (c *Client) Do(req *http.Request) (*http.Response, error)

See http.Client.Do.

func (*Client) DoCached

func (c *Client) DoCached(req *http.Request) (*http.Response, error)

DoCached returns a cached response for the request. If no cache entry exists, http.Client.Do is used. If the request succeeds, its response is cached if the response code is 2xx. It is the caller's responsibility to ensure that caching the request is sensible (i.e. only for GET requests). NOTE: Cached responses for URLs that were redirected will not have the correct request URL for the response - it will be the original request rather than the request to the final resource.

type Link struct {
	URL    *url.URL
	Params map[string]string
}

func ParseLinkHeader

func ParseLinkHeader(origin *url.URL, header string) ([]Link, error)

ParseLinkHeader parses a Link header.

SEE: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link.

type StatusRecorder added in v0.13.0

type StatusRecorder struct {
	Writer http.ResponseWriter
	// contains filtered or unexported fields
}

func (*StatusRecorder) Header added in v0.13.0

func (s *StatusRecorder) Header() http.Header

Header implements http.ResponseWriter.

func (*StatusRecorder) StatusCode added in v0.13.0

func (s *StatusRecorder) StatusCode() int

func (*StatusRecorder) Write added in v0.13.0

func (s *StatusRecorder) Write(b []byte) (int, error)

Write implements http.ResponseWriter.

func (*StatusRecorder) WriteHeader added in v0.13.0

func (s *StatusRecorder) WriteHeader(statusCode int)

WriteHeader implements http.ResponseWriter.

Jump to

Keyboard shortcuts

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