akumu

package module
v0.8.3 Latest Latest
Warning

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

Go to latest
Published: Sep 20, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultResponderHandler

func DefaultResponderHandler(writer http.ResponseWriter, request *http.Request, builder Builder)

func HandlerFunc added in v0.2.1

func HandlerFunc(handler func(*http.Request) error) http.HandlerFunc

func JSON added in v0.4.0

func JSON[T any](reader io.Reader) (T, error)

func Record

func Record(handler Handler, request *http.Request) *httptest.ResponseRecorder

func RecordHandler

func RecordHandler(handler http.Handler, request *http.Request) *httptest.ResponseRecorder

func RecordServer

func RecordServer(server *http.Server, request *http.Request) *httptest.ResponseRecorder

Types

type Builder added in v0.2.0

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

func Failed

func Failed(err error) Builder

func Response

func Response(status int) Builder

func (Builder) AppendHeader added in v0.2.0

func (builder Builder) AppendHeader(key, value string) Builder

func (Builder) Body added in v0.2.0

func (builder Builder) Body(body []byte) Builder

func (Builder) BodyReader added in v0.2.0

func (builder Builder) BodyReader(body io.Reader) Builder

func (Builder) BodyWriter added in v0.6.0

func (builder Builder) BodyWriter(writer func(writer http.ResponseWriter)) Builder

func (Builder) Cookie added in v0.3.0

func (builder Builder) Cookie(cookie http.Cookie) Builder

func (Builder) Error added in v0.2.0

func (builder Builder) Error() string

func (Builder) Failed added in v0.2.0

func (builder Builder) Failed(err error) Builder

func (Builder) HTML added in v0.2.0

func (builder Builder) HTML(html string) Builder

func (Builder) Handle added in v0.2.0

func (builder Builder) Handle(response http.ResponseWriter, request *http.Request)

func (Builder) Handler added in v0.2.0

func (builder Builder) Handler(handler BuilderHandler) Builder

func (Builder) Header added in v0.2.0

func (builder Builder) Header(key, value string) Builder

func (Builder) Headers added in v0.2.0

func (builder Builder) Headers(headers http.Header) Builder

func (Builder) JSON added in v0.2.0

func (builder Builder) JSON(body any) Builder

func (Builder) Merge added in v0.3.0

func (builder Builder) Merge(other Builder) Builder

func (Builder) Respond added in v0.2.0

func (builder Builder) Respond(request *http.Request) Builder

func (Builder) SSE added in v0.2.0

func (builder Builder) SSE(stream <-chan []byte) Builder

func (Builder) Status added in v0.2.0

func (builder Builder) Status(status int) Builder

func (Builder) Stream added in v0.2.0

func (builder Builder) Stream(stream <-chan []byte) Builder

func (Builder) Text added in v0.2.0

func (builder Builder) Text(body string) Builder

func (Builder) WithoutError added in v0.3.0

func (builder Builder) WithoutError() Builder

type BuilderHandler added in v0.2.0

type BuilderHandler func(http.ResponseWriter, *http.Request, Builder)

type ContextKey added in v0.8.0

type ContextKey struct{}

type Contextual added in v0.8.0

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

Contextual is a concurrent-safe implementation to append akumu-specific context to the given request.

func Context added in v0.8.0

func Context(request *http.Request) (*Contextual, bool)

func NewContext added in v0.8.0

func NewContext() *Contextual

func (*Contextual) OnError added in v0.8.0

func (ctx *Contextual) OnError(callback OnErrorCallback)

type Handler

type Handler func(*http.Request) error

func (Handler) HandlerFunc added in v0.2.2

func (handler Handler) HandlerFunc() http.HandlerFunc

func (Handler) ServeHTTP

func (handler Handler) ServeHTTP(writer http.ResponseWriter, request *http.Request)

type OnErrorCallback added in v0.8.0

type OnErrorCallback func(ServerError, OnErrorNext)

type OnErrorNext added in v0.8.0

type OnErrorNext func(ServerError)

type Problem

type Problem struct {
	Type     string
	Title    string
	Detail   string
	Status   int
	Instance string
	// contains filtered or unexported fields
}

Problem represents a problem details for HTTP APIs. See https://tools.ietf.org/html/rfc7807 for more information.

func NewProblemFromError added in v0.4.0

func NewProblemFromError(err error, status int) Problem

func (Problem) Error

func (problem Problem) Error() string

func (Problem) MarshalJSON added in v0.4.0

func (problem Problem) MarshalJSON() ([]byte, error)

func (Problem) Respond added in v0.2.0

func (problem Problem) Respond(request *http.Request) Builder

func (*Problem) UnmarshalJSON added in v0.4.0

func (problem *Problem) UnmarshalJSON(data []byte) error

func (Problem) With added in v0.4.0

func (problem Problem) With(key string, value any) Problem

func (Problem) Without added in v0.4.0

func (problem Problem) Without(key string) Problem

type Responder

type Responder interface {
	Respond(request *http.Request) Builder
}

type ServerError added in v0.8.0

type ServerError struct {
	Code int
	URL  string
	Text string
	Kind ServerErrorKind
	Body string
}

func (ServerError) Error added in v0.8.0

func (err ServerError) Error() string

type ServerErrorKind added in v0.8.0

type ServerErrorKind string
var (
	ServerErrorWriter  ServerErrorKind = "writer"
	ServerErrorBody    ServerErrorKind = "body"
	ServerErrorStream  ServerErrorKind = "stream"
	ServerErrorDefault ServerErrorKind = "default"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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