httpserver

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2024 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckAuthFlag

func CheckAuthFlag(w http.ResponseWriter, r *http.Request, expectedKey *flagutil.Password) bool

CheckAuthFlag checks whether the given authKey is set and valid

Falls back to checkBasicAuth if authKey is not set

func CheckBasicAuth

func CheckBasicAuth(w http.ResponseWriter, r *http.Request) bool

CheckBasicAuth validates credentials provided in request if httpAuth.* flags are set returns true if credentials are valid or httpAuth.* flags are not set

func EnableCORS

func EnableCORS(w http.ResponseWriter, _ *http.Request)

EnableCORS enables https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS on the response.

func Errorf

func Errorf(w http.ResponseWriter, r *http.Request, format string, args ...any)

Errorf writes formatted error message to w and to logger.

func GetPathPrefix

func GetPathPrefix() string

GetPathPrefix - returns http server path prefix.

func GetQuotedRemoteAddr

func GetQuotedRemoteAddr(r *http.Request) string

GetQuotedRemoteAddr returns quoted remote address.

func GetRequestURI

func GetRequestURI(r *http.Request) string

GetRequestURI returns requestURI for r.

func IsTLS

func IsTLS(idx int) bool

IsTLS indicates is tls enabled or not for -httpListenAddr at the given idx.

func LogError

func LogError(req *http.Request, errStr string)

LogError logs the errStr with the context from req.

func PrometheusErrorResponse

func PrometheusErrorResponse(statusCode int, err error) string

func Redirect

func Redirect(w http.ResponseWriter, url string)

Redirect redirects to the given url.

func SendPrometheusError

func SendPrometheusError(w http.ResponseWriter, r *http.Request, err error)

SendPrometheusError sends err to w in Prometheus querying API response format.

See https://prometheus.io/docs/prometheus/latest/querying/api/#format-overview for more details

func Serve

func Serve(addrs []string, useProxyProtocol *flagutil.ArrayBool, rh RequestHandler)

Serve starts an http server on the given addrs with the given optional rh.

By default all the responses are transparently compressed, since egress traffic is usually expensive.

The compression can be disabled by specifying -http.disableResponseCompression command-line flag.

If useProxyProtocol is set to true for the corresponding addr, then the incoming connections are accepted via proxy protocol. See https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt

func Stop

func Stop(addrs []string) error

Stop stops the http server on the given addrs, which has been started via Serve func.

func StreamPrometheusErrorResponse

func StreamPrometheusErrorResponse(qw422016 *qt422016.Writer, statusCode int, err error)

func WriteAPIHelp

func WriteAPIHelp(w io.Writer, pathList [][2]string)

WriteAPIHelp writes pathList to w in HTML format.

func WritePrometheusErrorResponse

func WritePrometheusErrorResponse(qq422016 qtio422016.Writer, statusCode int, err error)

Types

type ErrorWithStatusCode

type ErrorWithStatusCode struct {
	Err        error
	StatusCode int
}

ErrorWithStatusCode is error with HTTP status code.

The given StatusCode is sent to client when the error is passed to Errorf.

func (*ErrorWithStatusCode) Error

func (e *ErrorWithStatusCode) Error() string

Error implements error interface.

func (*ErrorWithStatusCode) Unwrap

func (e *ErrorWithStatusCode) Unwrap() error

Unwrap returns e.Err.

This is used by standard errors package. See https://golang.org/pkg/errors

type Path

type Path struct {
	Prefix    string
	AuthToken string
	Suffix    string
}

Path contains the following path structure: /{prefix}/{authToken}/{suffix}

It is compatible with SaaS version.

func ParsePath

func ParsePath(path string) (*Path, error)

ParsePath parses the given path.

type RequestHandler

type RequestHandler func(w http.ResponseWriter, r *http.Request) bool

RequestHandler must serve the given request r and write response to w.

RequestHandler must return true if the request has been served (successfully or not).

RequestHandler must return false if it cannot serve the given request. In such cases the caller must serve the request.

type UserReadableError

type UserReadableError struct {
	// Err is the error which needs to be returned to the user.
	Err error
}

UserReadableError is a type of error which supposed to be returned to the user without additional context.

func (*UserReadableError) Error

func (ure *UserReadableError) Error() string

Error satisfies Error interface

func (*UserReadableError) Unwrap

func (ure *UserReadableError) Unwrap() error

Unwrap returns ure.Err.

This is used by standard errors package. See https://golang.org/pkg/errors

Jump to

Keyboard shortcuts

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