middleware

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2023 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BrotilWriter

func BrotilWriter(w http.ResponseWriter) (io.WriteCloser, string)

func CompressHandler

func CompressHandler(listener interfaces.Listener, h http.Handler) http.Handler

CompressHandler gzip compresses HTTP responses for clients that support it via the 'Accept-Encoding' header.

Compressing TLS traffic may leak the page contents to an attacker if the page contains user input: http://security.stackexchange.com/a/102015/12208

func CompressHandlerLevel

func CompressHandlerLevel(listener interfaces.Listener, h http.Handler, level int) http.Handler

CompressHandlerLevel gzip compresses HTTP responses with specified compression level for clients that support it via the 'Accept-Encoding' header.

The compression level should be gzip.DefaultCompression, gzip.NoCompression, or any integer value between gzip.BestSpeed and gzip.BestCompression inclusive. gzip.DefaultCompression is used in case of invalid compression level.

func Init

func Init(listener interfaces.Listener, h http.Handler) http.Handler

All http coming setup in here.

func NewPanicOutput

func NewPanicOutput(ctx context.Context, w http.ResponseWriter)

func PanicRecovery

func PanicRecovery(listener interfaces.Listener) func(h http.Handler) http.Handler

Types

type ErrorLogs

type ErrorLogs struct {
	Code string      `json:"Grpc-Status"`
	Msg  interface{} `json:"Grpc-Message"`
}

type HeaderValues

type HeaderValues struct {
	AcceptEncoding string
}

type PanicMessage

type PanicMessage struct {
	Message interface{} `json:"message"`
	TraceID string      `json:"traceid"`
}

type ResponseWriter

type ResponseWriter struct {
	Request *http.Request
	http.ResponseWriter
	Buffer *bytes.Buffer

	BeforeFlush func([]byte)
	StatusCode  int
	// contains filtered or unexported fields
}

func NewResponseWriter

func NewResponseWriter(listener interfaces.Listener, w http.ResponseWriter, r *http.Request) *ResponseWriter

func (*ResponseWriter) Flush

func (c *ResponseWriter) Flush()

func (*ResponseWriter) Header

func (c *ResponseWriter) Header() http.Header

func (*ResponseWriter) ReadFrom

func (c *ResponseWriter) ReadFrom(r io.Reader) (int64, error)

func (*ResponseWriter) Write

func (c *ResponseWriter) Write(b []byte) (n int, e error)

func (*ResponseWriter) WriteHeader

func (c *ResponseWriter) WriteHeader(co int)

Jump to

Keyboard shortcuts

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