context

package
v0.1.26 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2020 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrIllegalStage = errors.New("illegal stage")
)
View Source
var (
	ErrNoRequestSet = errors.New("no request set")
)
View Source
var (
	NilRequestId = Id(uuid.Nil)
)

Functions

This section is empty.

Types

type Client

type Client struct {
	FromOtherReverseProxy bool
	Response              http.ResponseWriter
	Request               *http.Request

	Status   int
	Started  time.Time
	Duration time.Duration
	// contains filtered or unexported fields
}

func (*Client) Address

func (instance *Client) Address() (string, error)

func (Client) AsMap

func (instance Client) AsMap() map[string]interface{}

func (Client) Host

func (instance Client) Host() string

func (*Client) Origin

func (instance *Client) Origin() (*url.URL, error)

func (*Client) RequestedUrl

func (instance *Client) RequestedUrl() (*url.URL, error)

type Context

type Context struct {
	Client        Client
	Upstream      Upstream
	Id            Id
	CorrelationId Id
	Stage         Stage

	Rule   rules.Rule
	Result Result
	Error  error

	Properties map[string]interface{}
}

func AcquireContext

func AcquireContext(fromOtherReverseProxy bool, resp http.ResponseWriter, req *http.Request) *Context

func (*Context) AsMap

func (instance *Context) AsMap() map[string]interface{}

func (*Context) Done

func (instance *Context) Done(result Result, err ...error)

func (*Context) Log

func (instance *Context) Log() log.FieldLogger

func (*Context) MarkError

func (instance *Context) MarkError(err error)

func (*Context) MarkUnavailable

func (instance *Context) MarkUnavailable(err error)

func (*Context) MarkUnknown

func (instance *Context) MarkUnknown()

func (*Context) MarshalJSON

func (instance *Context) MarshalJSON() ([]byte, error)

func (*Context) NewGenericResponse added in v0.1.12

func (instance *Context) NewGenericResponse(statusCode int, message string) *GenericResponse

func (*Context) Release

func (instance *Context) Release()

type GenericResponse added in v0.1.12

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

func (*GenericResponse) SetData added in v0.1.12

func (instance *GenericResponse) SetData(data interface{}) *GenericResponse

func (*GenericResponse) SetPath added in v0.1.12

func (instance *GenericResponse) SetPath(path string) *GenericResponse

func (*GenericResponse) StreamAsJson added in v0.1.12

func (instance *GenericResponse) StreamAsJson()

func (GenericResponse) StreamAsXml added in v0.1.12

func (instance GenericResponse) StreamAsXml()

func (*GenericResponse) StreamAsYaml added in v0.1.12

func (instance *GenericResponse) StreamAsYaml()

type Id

type Id uuid.UUID

func NewCorrelationId added in v0.1.12

func NewCorrelationId(fromOtherReverseProxy bool, req *http.Request) Id

func NewId

func NewId(fromOtherReverseProxy bool, req *http.Request) Id

func ParseId added in v0.1.12

func ParseId(plain string) (Id, error)

func (Id) MarshalJSON

func (instance Id) MarshalJSON() ([]byte, error)

func (Id) String

func (instance Id) String() string

type MetricsCollector added in v0.1.18

type MetricsCollector interface {
	CollectContext(*Context)

	CollectClientStarted() func()
	CollectUpstreamStarted() func()
}

type RedirectResult

type RedirectResult struct {
	StatusCode int
	Target     string
}

func (RedirectResult) Name

func (instance RedirectResult) Name() string

func (RedirectResult) Status

func (instance RedirectResult) Status() int

func (RedirectResult) String

func (instance RedirectResult) String() string

func (RedirectResult) WasResponseSendToClient

func (instance RedirectResult) WasResponseSendToClient() bool

type Result

type Result interface {
	Name() string
	String() string
	Status() int
	WasResponseSendToClient() bool
}

type ResultHandler

type ResultHandler func(ctx *Context)

type SimpleResult

type SimpleResult uint8
var (
	ResultUnknown                       SimpleResult = 0
	ResultSuccess                       SimpleResult = 1
	ResultOk                            SimpleResult = 2
	ResultFailedWithUnexpectedError     SimpleResult = 3
	ResultFailedWithRuleNotFound        SimpleResult = 4
	ResultFailedWithUpstreamUnavailable SimpleResult = 5
	ResultFailedWithAccessDenied        SimpleResult = 6
	ResultFallback                      SimpleResult = 7
	ResultFailedWithUnauthorized        SimpleResult = 8
)

func (SimpleResult) Name

func (instance SimpleResult) Name() string

func (SimpleResult) Status

func (instance SimpleResult) Status() int

func (SimpleResult) String

func (instance SimpleResult) String() string

func (SimpleResult) WasResponseSendToClient

func (instance SimpleResult) WasResponseSendToClient() bool

type Stage

type Stage uint8
const (
	StageUnknown                Stage = 0
	StageCreated                Stage = 1
	StageEvaluateClientRequest  Stage = 2
	StagePrepareUpstreamRequest Stage = 3
	StageSendRequestToUpstream  Stage = 4
	StagePrepareClientResponse  Stage = 5
	StageSendResponseToClient   Stage = 6
	StageDone                   Stage = 7
)

func ParseStage

func ParseStage(plain string) (Stage, error)

func (Stage) String

func (instance Stage) String() string

type Upstream

type Upstream struct {
	Response *http.Response
	Request  *http.Request
	Address  net.Addr
	Cancel   context.CancelFunc

	Status   int
	Started  time.Time
	Duration time.Duration
}

func (Upstream) AsMap

func (instance Upstream) AsMap(r rules.Rule) map[string]interface{}

Jump to

Keyboard shortcuts

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