proxy
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package proxy provides a record/replay HTTP proxy. It is designed to supportboth an in-memory API (cloud.google.com/go/httpreplay) and a standalone server(cloud.google.com/go/httpreplay/cmd/httpr).
Index¶
- Constants
- Variables
- type Converter
- type Entry
- type Log
- type Logger
- type Proxy
- func (p *Proxy) ClearHeaders(patterns []string)
- func (p *Proxy) ClearQueryParams(patterns []string)
- func (p *Proxy) Close() error
- func (p *Proxy) IgnoreHeader(h string)
- func (p *Proxy) RemoveQueryParams(patterns []string)
- func (p *Proxy) RemoveRequestHeaders(patterns []string)
- func (p *Proxy) Transport() *http.Transport
- type Request
- type Response
Constants¶
const LogVersion = "0.2"LogVersion is the current version of the log format. It can be used tosupport changes to the format over time, so newer code can read older files.
Variables¶
var DebugHeaders =falseDebugHeaders helps to determine whether a header should be ignored.When true, if requests have the same method, URL and body but differin a header, the first mismatched header is logged.
Functions¶
This section is empty.
Types¶
typeConverter¶added inv0.35.0
type Converter struct {// These all apply to both headers and trailers.ClearHeaders []tRegexp// replace matching headers with "CLEARED"RemoveRequestHeaders []tRegexp// remove matching headers in requestsRemoveResponseHeaders []tRegexp// remove matching headers in responsesClearParams []tRegexp// replace matching query params with "CLEARED"RemoveParams []tRegexp// remove matching query params}A Converter converts HTTP requests and responses to the Request and Response typesof this package, while removing or redacting information.
typeLog¶added inv0.25.0
type Log struct {Initial []byte// initial data for replayVersionstring// version of this log formatConverter *ConverterEntries []*Entry}A Log is a record of HTTP interactions, suitable for replay. It can be serialized to JSON.
typeLogger¶added inv0.25.0
type Logger struct {// contains filtered or unexported fields}A Logger maintains a request-response log.
func (*Logger)Extract¶added inv0.25.0
Extract returns the Log and removes it. The Logger is not usableafter this call.
func (*Logger)ModifyRequest¶added inv0.25.0
ModifyRequest logs requests.
typeProxy¶
type Proxy struct {// The certificate that the proxy uses to participate in TLS.CACert *x509.Certificate// The URL of the proxy.URL *url.URL// Initial state of the client.Initial []byte// contains filtered or unexported fields}A Proxy is an HTTP proxy that supports recording or replaying requests.
funcForRecording¶
ForRecording returns a Proxy configured to record.
funcForReplaying¶
ForReplaying returns a Proxy configured to replay.
func (*Proxy)ClearHeaders¶added inv0.35.0
ClearHeaders will replace matching headers with CLEARED.
This only needs to be called during recording; the patterns will be saved to thelog for replay.
func (*Proxy)ClearQueryParams¶added inv0.35.0
ClearQueryParams will replace matching query params in the request URL with CLEARED.
This only needs to be called during recording; the patterns will be saved to thelog for replay.
func (*Proxy)IgnoreHeader¶added inv0.25.0
IgnoreHeader will cause h to be ignored during matching on replay.Deprecated: use RemoveRequestHeaders instead.
func (*Proxy)RemoveQueryParams¶added inv0.35.0
RemoveQueryParams will remove query parameters matching patterns from the requestURL before logging, and skip matching them. Pattern is taken literally except for*, which matches any sequence of characters.
This only needs to be called during recording; the patterns will be saved to thelog for replay.
func (*Proxy)RemoveRequestHeaders¶added inv0.35.0
RemoveRequestHeaders will remove request headers matching patterns from the log,and skip matching them. Pattern is taken literally except for *, which matches anysequence of characters.
This only needs to be called during recording; the patterns will be saved to thelog for replay.
typeRequest¶added inv0.25.0
type Request struct {Methodstring// http.Request.MethodURLstring// http.Request.URL, as a stringHeaderhttp.Header// http.Request.Header// We need to understand multipart bodies because the boundaries are// generated randomly, so we can't just compare the entire bodies for equality.MediaTypestring// the media type part of the Content-Type headerBodyParts [][]byte// http.Request.Body, read to completion and split for multipartTrailerhttp.Header `json:",omitempty"`// http.Request.Trailer}A Request represents an http.Request in the log.
typeResponse¶added inv0.25.0
type Response struct {StatusCodeint// http.Response.StatusCodeProtostring// http.Response.ProtoProtoMajorint// http.Response.ProtoMajorProtoMinorint// http.Response.ProtoMinorHeaderhttp.Header// http.Response.HeaderBody []byte// http.Response.Body, read to completionTrailerhttp.Header `json:",omitempty"`// http.Response.Trailer}A Response represents an http.Response in the log.