proxy

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 18, 2021 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsText

func IsText(headers http.Header) bool

Types

type Cassette

type Cassette struct {
	Name     string
	Episodes []Episode
}

type Config

type Config struct {
	TargetHost             string
	CassetteDir            string
	Episodes               []Episode
	Cassette               string   `json:"cassette"`
	RecordNewEpisodes      bool     `json:"record_new_episodes"`
	DenyUnrecordedRequests bool     `json:"deny_unrecorded_requests"`
	RewriteHostHeader      bool     `json:"rewrite_host_header"`
	MatchHeaders           []string `json:"match_headers"`
}

func (*Config) Load

func (c *Config) Load() error

func (*Config) Save

func (c *Config) Save() error

type Episode

type Episode struct {
	Request  RecordedRequest
	Response RecordedResponse
}

type Options

type Options struct {
	Logger  *log.Logger
	Casette string
}

type ProxyResponseWriter

type ProxyResponseWriter struct {
	Writer   http.ResponseWriter
	Response RecordedResponse
}

func (*ProxyResponseWriter) Header

func (p *ProxyResponseWriter) Header() http.Header

func (*ProxyResponseWriter) Write

func (p *ProxyResponseWriter) Write(bytes []byte) (int, error)

func (*ProxyResponseWriter) WriteHeader

func (p *ProxyResponseWriter) WriteHeader(statusCode int)

type RecordedRequest

type RecordedRequest struct {
	Method string
	URL    *url.URL
	Header http.Header
	Body   []byte
	Form   map[string][]string
}

type RecordedResponse

type RecordedResponse struct {
	StatusCode int
	Body       []byte
	Header     http.Header
}

type TargetProxy

type TargetProxy struct {
	// contains filtered or unexported fields
}

func NewTargetProxy

func NewTargetProxy(target *url.URL, cassetteDir string, opts Options) TargetProxy

func (TargetProxy) CassetteHandlerMiddleware

func (t TargetProxy) CassetteHandlerMiddleware(next http.Handler) http.Handler

func (TargetProxy) ConfigRequestHandler

func (t TargetProxy) ConfigRequestHandler(resp http.ResponseWriter, req *http.Request)

func (TargetProxy) RewriteHeaderMiddleware

func (t TargetProxy) RewriteHeaderMiddleware(next http.Handler) http.Handler

func (TargetProxy) ServeHTTP

func (t TargetProxy) ServeHTTP(writer http.ResponseWriter, request *http.Request)

type WriteableEpisode

type WriteableEpisode struct {
	Request  WriteableRecordedRequest
	Response WriteableRecordedResponse
}

type WriteableRecordedRequest

type WriteableRecordedRequest struct {
	Method string
	URL    *url.URL
	Header http.Header
	Body   interface{}
	Form   map[string][]string
}

proxy structs with interface{} instead of []byte for bodies so we can write plain text as human-readable strings but still store binary

type WriteableRecordedResponse

type WriteableRecordedResponse struct {
	StatusCode int
	Body       interface{}
	Header     http.Header
}

Jump to

Keyboard shortcuts

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