httpserver

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AuthenticationRequired = AuthenticationResultCode(1)
	Forbidden              = AuthenticationResultCode(2)
	Authorized             = AuthenticationResultCode(3)
)

Variables

This section is empty.

Functions

func Default

func Default() ctx.ServicePackage

Types

type AuthenticationResult

type AuthenticationResult struct {
	Code       AuthenticationResultCode
	Credential int64
}

type AuthenticationResultCode

type AuthenticationResultCode int

type Authenticator

type Authenticator interface {
	Authenticate(request *rest.Request) AuthenticationResult
}

func BearerTokenAuthenticator

func BearerTokenAuthenticator(authFn func(path string, token string) AuthenticationResultCode) Authenticator

type RequestData

type RequestData rest.Request

func (*RequestData) Credential

func (d *RequestData) Credential() int64

func (*RequestData) Path

func (d *RequestData) Path() map[string]string

func (*RequestData) Query

func (d *RequestData) Query() url.Values

type RestServer

type RestServer interface {
	SetupAuthentication(authenticator Authenticator)
	RegisterRoute(route *rest.Route)
}

func NewRestServer

func NewRestServer(name string, configPrefix string) RestServer

type RqHandler

type RqHandler[Rq any] interface {
	Handle(handler func() (response any, httpStatus int, err error)) func(rest.ResponseWriter, *rest.Request)
	HandleRequest(handler func(request *RequestData) (response any, httpStatus int, err error)) func(rest.ResponseWriter, *rest.Request)
	HandleRequestBody(handler func(request *RequestData, body Rq) (response any, httpStatus int, err error)) func(rest.ResponseWriter, *rest.Request)
	HandleRaw(handler func(request *RequestData, responseWriter rest.ResponseWriter) error) func(rest.ResponseWriter, *rest.Request)
}

func RequestHandler

func RequestHandler[Rq any](logger logger.Logger) RqHandler[Rq]

Jump to

Keyboard shortcuts

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