yodel

package module
v0.0.0-...-0a0ce4c Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2024 License: MIT Imports: 5 Imported by: 0

README

GitHub License GitHub Workflow Status Go Reference

yodel

A wrapper library for echo.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Binder

type Binder[T any] interface {
	Bind(echo.Context) (T, error)
}

A Binder binds values from the request to the generic model type.

type BinderFunc

type BinderFunc[T any] func(echo.Context) (T, error)

BinderFunc provides a function implementation of Binder.

func (BinderFunc[T]) Bind

func (fn BinderFunc[T]) Bind(c echo.Context) (T, error)

Bind implements Binder.

type Controller

type Controller[Req, Res any] struct {
	Binder    Binder[Req]
	Responder Responder[Res]
	Resolver  Resolver[Req, Res]
}

Controller provides a composable implementation of Handler, using a Binder, Resolver, and Responder.

func (*Controller[Req, Res]) Handle

func (controller *Controller[Req, Res]) Handle(c echo.Context) error

Handle implements Handler.

type DefaultBinder

type DefaultBinder[T any] struct{}

DefaultBinder binds the model type using the built-in echo.DefaultBinder.

func (DefaultBinder[T]) Bind

func (DefaultBinder[T]) Bind(c echo.Context) (value T, err error)

Bind implements Binder.

type Handler

type Handler interface {
	Handle(echo.Context) error
}

Handler handles a given HTTP(S) request.

type HandlerFunc

type HandlerFunc func(echo.Context) error

HandlerFunc provides a function implementation of Handler.

func (HandlerFunc) Handle

func (fn HandlerFunc) Handle(c echo.Context) error

Handle implements Handler.

type JSONResponder

type JSONResponder[T any] struct{}

JSONResponder responds to the request by encoding the provided model type into JSON before serializing it to the response body.

func (JSONResponder[T]) Respond

func (JSONResponder[T]) Respond(c echo.Context, value T) error

Respond implements Responder.

type Middleware

type Middleware interface {
	Invoke(next echo.HandlerFunc) echo.HandlerFunc
}

Middleware wraps a request Handler, accessing and modifying the request and response values.

type MiddlewareFunc

type MiddlewareFunc func(next echo.HandlerFunc) echo.HandlerFunc

MiddlewareFunc provides a function implementation of Middleware.

func (MiddlewareFunc) Invoke

Invoke implements Middleware.

type RedirectResponder

type RedirectResponder struct{}

RedirectResponder responds to the request via redirect using the parameters provided in the RedirectResponse value.

func (RedirectResponder) Respond

func (RedirectResponder) Respond(c echo.Context, value RedirectResponse) error

Respond implements Responder.

type RedirectResponse

type RedirectResponse struct {
	Code int
	Url  string
}

RedirectResponse provides the HTTP status code and URL necessary to perform the redirect.

type Resolver

type Resolver[Req, Res any] interface {
	Resolve(context.Context, Req) (Res, error)
}

Resolver resolves a response value for a given request value

type ResolverFunc

type ResolverFunc[Req, Res any] func(context.Context, Req) (Res, error)

ResolverFunc provides a function implementation of Resolver.

func (ResolverFunc[Req, Res]) Resolve

func (fn ResolverFunc[Req, Res]) Resolve(ctx context.Context, req Req) (Res, error)

Resolve implements Resolver.

type Responder

type Responder[T any] interface {
	Respond(echo.Context, T) error
}

Responder prepares the response using the provided model type.

type ResponderFunc

type ResponderFunc[T any] func(echo.Context, T) error

ResponderFunc provides a functions implementation of Responder.

func (ResponderFunc[T]) Respond

func (fn ResponderFunc[T]) Respond(c echo.Context, value T) error

Respond implements Responder.

type Route

type Route struct {
	Method     string
	Path       string
	Handler    Handler
	Middleware []Middleware
}

Route provides the parameters needed to register a given Handler in the Router.

type Router

type Router struct{ *echo.Echo }

Router provides a thin wrapper around echo.Echo

func New

func New() Router

New creates a new Router.

func (Router) Add

func (r Router) Add(route Route) *echo.Route

Add registers a new Route.

func (Router) Use

func (r Router) Use(middleware ...Middleware)

Use add a Middleware to the chain.

func (Router) UseLogger

func (r Router) UseLogger(logger *slog.Logger)

UseLogger provides the slogecho middleware to the Router.

type StaticResolver

type StaticResolver[_, T any] struct {
	Value T
}

StaticResolver resolves a static value.

func (StaticResolver[Req, Res]) Resolve

func (resolver StaticResolver[Req, Res]) Resolve(context.Context, Req) (Res, error)

Resolve implements Resolver.

Directories

Path Synopsis
pkg
validation module
views module

Jump to

Keyboard shortcuts

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