Documentation
¶
Overview ¶
Package middleware provides middleware bridging from Nirvana to Huma.
Index ¶
- func Chain(middlewares ...HumaMiddlewareFunc) func(huma.Context)
- func Compose(middlewares ...func(huma.Context)) func(huma.Context)
- func CreateNirvanaChain(humaNext func(context.Context)) definition.Chain
- func ExecuteMiddleware(middleware func(ctx context.Context, chain definition.Chain) error, ...) error
- func NirvanaToHumaChain(nirvanaChain definition.Chain, humaCtx huma.Context) func(context.Context)
- func UseMiddleware(api huma.API, mw HumaMiddlewareFunc)
- type ChainAdapter
- type CommonMiddlewareConverters
- func (c *CommonMiddlewareConverters) AuthConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
- func (c *CommonMiddlewareConverters) CORSConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
- func (c *CommonMiddlewareConverters) LoggingConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
- func (c *CommonMiddlewareConverters) RecoveryConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
- type HumaMiddlewareFunc
- type HumaMiddlewareWrapper
- type MiddlewareOption
- type MiddlewareRegistry
- type NirvanaChainBridge
- type NirvanaMiddleware
- type NirvanaMiddlewareFunc
- type NirvanaToHumaConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Chain ¶
func Chain(middlewares ...HumaMiddlewareFunc) func(huma.Context)
Chain creates a middleware chain from Huma middleware functions (ctx, next).
func CreateNirvanaChain ¶
func CreateNirvanaChain(humaNext func(context.Context)) definition.Chain
CreateNirvanaChain creates a Chain that wraps Huma's next function. The chain holds a default context (Background) and the given next handler.
func ExecuteMiddleware ¶
func ExecuteMiddleware( middleware func(ctx context.Context, chain definition.Chain) error, ctx context.Context, chain definition.Chain, ) error
ExecuteMiddleware executes a Nirvana middleware with the given chain.
func NirvanaToHumaChain ¶
NirvanaToHumaChain converts a Nirvana middleware chain to Huma format.
func UseMiddleware ¶
func UseMiddleware(api huma.API, mw HumaMiddlewareFunc)
UseMiddleware applies a single middleware (function form) to the API.
Types ¶
type ChainAdapter ¶
type ChainAdapter struct {
// contains filtered or unexported fields
}
ChainAdapter adapts a Huma middleware chain to accept Nirvana Chain.
func NewChainAdapter ¶
func NewChainAdapter(ctx context.Context, next func(context.Context)) *ChainAdapter
NewChainAdapter creates a new chain adapter.
func (*ChainAdapter) Context ¶
func (c *ChainAdapter) Context() context.Context
Context implements definition.Chain.
func (*ChainAdapter) Continue ¶
func (c *ChainAdapter) Continue(ctx context.Context) error
Continue implements definition.Chain.
func (*ChainAdapter) ToHuma ¶
func (c *ChainAdapter) ToHuma() func(huma.Context)
ToHuma converts a Nirvana Chain to a Huma next function.
type CommonMiddlewareConverters ¶
type CommonMiddlewareConverters struct{}
CommonMiddlewareConverters provides common middleware conversion patterns.
func NewCommonConverters ¶
func NewCommonConverters() *CommonMiddlewareConverters
NewCommonConverters creates a new CommonMiddlewareConverters.
func (*CommonMiddlewareConverters) AuthConverter ¶
func (c *CommonMiddlewareConverters) AuthConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
AuthConverter converts a Nirvana authentication middleware to Huma.
func (*CommonMiddlewareConverters) CORSConverter ¶
func (c *CommonMiddlewareConverters) CORSConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
CORSConverter converts a Nirvana CORS middleware to Huma.
func (*CommonMiddlewareConverters) LoggingConverter ¶
func (c *CommonMiddlewareConverters) LoggingConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
LoggingConverter converts a Nirvana logging middleware to Huma.
func (*CommonMiddlewareConverters) RecoveryConverter ¶
func (c *CommonMiddlewareConverters) RecoveryConverter(nirvanaMw func(ctx context.Context, chain definition.Chain) error) HumaMiddlewareFunc
RecoveryConverter converts a Nirvana recovery middleware to Huma.
type HumaMiddlewareFunc ¶
HumaMiddlewareFunc is the Huma v2 middleware signature: func(ctx, next). Huma does not export a Middleware type; UseMiddleware accepts this function form.
func ConvertMiddleware ¶
func ConvertMiddleware(mw NirvanaMiddlewareFunc, opts ...MiddlewareOption) HumaMiddlewareFunc
ConvertMiddleware converts a Nirvana middleware to a Huma middleware (function form).
func ConvertToHuma ¶
func ConvertToHuma(mw NirvanaMiddleware, opts ...MiddlewareOption) HumaMiddlewareFunc
ConvertToHuma converts a Nirvana middleware to a Huma middleware (function form).
type HumaMiddlewareWrapper ¶
type HumaMiddlewareWrapper struct {
// Middleware is the original Nirvana middleware
Middleware NirvanaMiddleware
// Config holds conversion configuration
Config NirvanaToHumaConfig
}
HumaMiddlewareWrapper wraps a Nirvana middleware for use with Huma.
type MiddlewareOption ¶
type MiddlewareOption func(*NirvanaToHumaConfig)
MiddlewareOption is a function that configures middleware conversion.
func WithName ¶
func WithName(name string) MiddlewareOption
WithName sets the name for middleware identification.
func WithPriority ¶
func WithPriority(priority int) MiddlewareOption
WithPriority sets the priority for middleware execution.
func WithSkipWithoutContext ¶
func WithSkipWithoutContext() MiddlewareOption
WithSkipWithoutContext enables skipping middleware when nirvana context is unavailable.
type MiddlewareRegistry ¶
type MiddlewareRegistry struct {
// contains filtered or unexported fields
}
MiddlewareRegistry manages middleware registration and ordering.
func NewMiddlewareRegistry ¶
func NewMiddlewareRegistry() *MiddlewareRegistry
NewMiddlewareRegistry creates a new middleware registry.
func (*MiddlewareRegistry) Build ¶
func (r *MiddlewareRegistry) Build(finalHandler func(huma.Context)) func(huma.Context)
Build builds the middleware chain in the correct order.
func (*MiddlewareRegistry) Middlewares ¶
func (r *MiddlewareRegistry) Middlewares() []*HumaMiddlewareWrapper
Middlewares returns all registered middlewares.
func (*MiddlewareRegistry) Register ¶
func (r *MiddlewareRegistry) Register(mw NirvanaMiddleware, opts ...MiddlewareOption)
Register registers a Nirvana middleware.
func (*MiddlewareRegistry) Use ¶
func (r *MiddlewareRegistry) Use(api huma.API)
Use applies all registered middlewares to the Huma API.
type NirvanaChainBridge ¶
type NirvanaChainBridge struct {
// contains filtered or unexported fields
}
NirvanaChainBridge bridges Nirvana and Huma middleware chains.
func NewNirvanaChainBridge ¶
func NewNirvanaChainBridge() *NirvanaChainBridge
NewNirvanaChainBridge creates a new bridge.
func (*NirvanaChainBridge) AddHandler ¶
func (b *NirvanaChainBridge) AddHandler(handler func(huma.Context))
AddHandler adds a Huma handler to the chain.
func (*NirvanaChainBridge) Build ¶
func (b *NirvanaChainBridge) Build() func(huma.Context)
Build builds the final handler that executes all handlers in order.
type NirvanaMiddleware ¶
type NirvanaMiddleware func(ctx context.Context, chain definition.Chain) error
NirvanaMiddleware represents a Nirvana middleware function.
type NirvanaMiddlewareFunc ¶
type NirvanaMiddlewareFunc func(ctx context.Context, chain definition.Chain) error
NirvanaMiddlewareFunc is the signature for Nirvana middleware.
type NirvanaToHumaConfig ¶
type NirvanaToHumaConfig struct {
// Priority determines the execution order (higher = executed first)
Priority int
// Name is the middleware identifier
Name string
// SkipWithoutContext skips middleware if nirvana context is not available
SkipWithoutContext bool
}
NirvanaToHumaConfig holds configuration for middleware conversion.