routing

package module
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Oct 29, 2019 License: GPL-3.0 Imports: 16 Imported by: 0

README

gocipe-router

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsWebSocket

func IsWebSocket(r *http.Request) bool

IsWebSocket determines whether or not an http request is using websocket

func WrapWithErrorHandler

func WrapWithErrorHandler(next http.Handler, errorHandler ErrorHandler) http.Handler

WrapWithErrorHandler wraps an http.Handler function with a custom error handling func

func WrapWithFallback

func WrapWithFallback(handler http.Handler, fallback []byte, headers map[string]string) http.Handler

WrapWithFallback wraps an http.Handler function in order to show fallback content on error

Types

type CSSEResourceCacher added in v0.3.0

type CSSEResourceCacher struct {
	*ResourceCacher
	// contains filtered or unexported fields
}

CSSEResourceCacher is an SSE variant of Resource Cacher

func NewCSSEResourceCacher added in v0.3.0

func NewCSSEResourceCacher(opts *SSEOptions) *CSSEResourceCacher

NewCSSEResourceCacher returns a new SSE resource cachner

func (*CSSEResourceCacher) ServeHTTP added in v0.3.0

func (c *CSSEResourceCacher) ServeHTTP(w http.ResponseWriter, r *http.Request)

type ErrorHandler

type ErrorHandler func(w http.ResponseWriter, status int)

ErrorHandler defines a custom error handler

type Options added in v0.2.0

type Options struct {
	// Defines a custom logger
	Logger *logrus.Entry
}

Options represents a set of resource cacher options

type Resource added in v0.2.0

type Resource struct {
	Alias          string
	Method         string
	URL            string
	Interval       time.Duration
	Content        []byte
	Header         http.Header
	StatusCode     int
	Hash           string
	OldHash        string
	AllowedOrigins []string
	// contains filtered or unexported fields
}

Resource represents a single resource to cache

func (*Resource) Fetch added in v0.2.0

func (r *Resource) Fetch() error

Fetch makes the request to obtain the resource and caches the result

func (*Resource) IsOriginAllowed added in v0.2.0

func (r *Resource) IsOriginAllowed(origin string) bool

IsOriginAllowed checks if origin is valid

func (*Resource) StartFetcher added in v0.2.0

func (r *Resource) StartFetcher()

StartFetcher starts the automatic fetcher

func (*Resource) StopFetcher added in v0.2.0

func (r *Resource) StopFetcher()

StopFetcher stops the automatic fetcher

func (*Resource) WriteHeaders added in v0.2.0

func (r *Resource) WriteHeaders(w http.ResponseWriter)

WriteHeaders write the header to a response writer

type ResourceCacher

type ResourceCacher struct {
	OnResourceAdded   ResourceEvent
	OnResourceUpdated ResourceEvent
	OnResourceRemoved ResourceEvent
	OnStarted         func()
	OnStopped         func()
	// contains filtered or unexported fields
}

ResourceCacher creates a reverse proxy that caches the results

func NewResourceCacher

func NewResourceCacher(opts *Options) *ResourceCacher

NewResourceCacher creates a new resource cacher

func (*ResourceCacher) AddResource added in v0.2.0

func (c *ResourceCacher) AddResource(res *Resource, onUpdate ResourceEvent) (*Resource, error)

AddResource adds a new resource to the resource cacher

func (*ResourceCacher) RemoveResource added in v0.2.0

func (c *ResourceCacher) RemoveResource(alias string) (*Resource, error)

RemoveResource removes an existing resource from the resource cacher

func (*ResourceCacher) ServeHTTP

func (c *ResourceCacher) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP to implement net/http.Handler for ResourceCacher

func (*ResourceCacher) Start

func (c *ResourceCacher) Start()

Start autofetching/caching

func (*ResourceCacher) Stop

func (c *ResourceCacher) Stop()

Stop autofetching/caching

type ResourceEvent added in v0.2.0

type ResourceEvent func(res *Resource)

ResourceEvent represents a callback fn

type Resources added in v0.2.0

type Resources map[string]*Resource

Resources is map of resources

type SSEOptions added in v0.2.0

type SSEOptions struct {
	*Options

	RetryInterval int
}

SSEOptions augments Resource Cacher Options

type SSEResourceCacher added in v0.2.0

type SSEResourceCacher struct {
	*ResourceCacher
	// contains filtered or unexported fields
}

SSEResourceCacher is an SSE variant of Resource Cacher

func NewSSEResourceCacher added in v0.2.0

func NewSSEResourceCacher(opts *SSEOptions) *SSEResourceCacher

NewSSEResourceCacher returns a new SSE resource cachner

func (*SSEResourceCacher) ServeHTTP added in v0.2.0

func (c *SSEResourceCacher) ServeHTTP(w http.ResponseWriter, r *http.Request)

type WebAppProxy

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

WebAppProxy creates a reverse proxy typically used for nodejs webapps

func NewWebAppProxy

func NewWebAppProxy(url *url.URL) *WebAppProxy

NewWebAppProxy creates a new webapp proxy

func (WebAppProxy) ServeHTTP

func (p WebAppProxy) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP to implement net/http.Handler for WebAppProxy

type WebSocketReverseProxy

type WebSocketReverseProxy struct {
	Target     string
	Connection net.Conn
	Hijacker   http.Hijacker
}

WebSocketReverseProxy implements http.HandlerFunc to reverse proxy websocket requests

func NewWebSocketReverseProxy

func NewWebSocketReverseProxy(url *url.URL) *WebSocketReverseProxy

NewWebSocketReverseProxy creates a new websocket reverse proxy

func (*WebSocketReverseProxy) Close

func (ws *WebSocketReverseProxy) Close() error

Close closes the ws proxy

func (*WebSocketReverseProxy) ServeHTTP

func (ws *WebSocketReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request)

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

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