gin

package
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const SceneName = "scene.app-container.http.gin"

Variables

This section is empty.

Functions

func GetContext

func GetContext(c *gin.Context) scene.Context

func Handle

func Handle[A GinApplication, T Request[A]](app A, request T) gin.HandlerFunc

func MiddlewareChain

func MiddlewareChain(middlewares ...gin.HandlerFunc) func(handler gin.HandlerFunc) []gin.HandlerFunc

func NewAppContainer

func NewAppContainer(
	addr string,
	apps []GinApplication,
	options ...GinOption,
) scene.ApplicationContainer

func NewAppContainerWithPrefix

func NewAppContainerWithPrefix(
	addr string,
	prefix string,
	apps []GinApplication,
	options ...GinOption,
) scene.ApplicationContainer

func RequestWrapper added in v0.2.5

func RequestWrapper[T GinApplication](app T) func(Request[T]) gin.HandlerFunc

func WrapReq added in v0.2.5

func WrapReq[A GinApplication, T Request[A]](app A, request T) gin.HandlerFunc

Types

type CommonApp

type CommonApp struct {
	AppError  error
	AppStatus scene.AppStatus
	Logger    logger.ILogger
}

func (*CommonApp) Destroy

func (s *CommonApp) Destroy() error

func (*CommonApp) Error

func (s *CommonApp) Error() error

func (*CommonApp) Status

func (s *CommonApp) Status() scene.AppStatus

type Context

type Context[T GinApplication] struct {
	*gin.Context
	App T
}

func (*Context[T]) Get

func (g *Context[T]) Get(key string) (value any, exists bool)

func (*Context[T]) Set

func (g *Context[T]) Set(key string, value any)

type GinApplication

type GinApplication interface {
	scene.Application
	Prefix() string
	Create(engine *gin.Engine, router gin.IRouter) error
	Destroy() error
}

type GinOption

type GinOption func(engine *gin.Engine) error

func WithCors

func WithCors() GinOption

func WithLogger

func WithLogger(log logger.ILogger) GinOption

func WithRecovery

func WithRecovery() GinOption

type ParameterBinder

type ParameterBinder[T GinApplication] interface {
	Bind(ctx *Context[T]) error
}

type Request

type Request[T GinApplication] interface {
	Process(ctx *Context[T]) (data any, err error)
	Binding() binding.Binding
}

type RequestJson

type RequestJson struct{}

func (*RequestJson) Binding

func (r *RequestJson) Binding() binding.Binding

type RequestNoParam added in v0.2.5

type RequestNoParam struct{}

func (*RequestNoParam) Binding added in v0.2.5

func (r *RequestNoParam) Binding() binding.Binding

type RequestQuery

type RequestQuery struct{}

func (*RequestQuery) Binding

func (r *RequestQuery) Binding() binding.Binding

type RequestURI

type RequestURI struct{}

func (*RequestURI) Binding

func (r *RequestURI) Binding() binding.Binding

Jump to

Keyboard shortcuts

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