Documentation
¶
Index ¶
- func WithUri(uri string) moduleOption
- type Controller
- type Module
- type Option
- type Runner
- type SolaController
- type SolaModule
- func (m *SolaModule) AddControllers(c ...Controller)
- func (m *SolaModule) AddPostMiddleware(middleware gin.HandlerFunc)
- func (m *SolaModule) AddPreMiddleware(middleware gin.HandlerFunc)
- func (m *SolaModule) Controllers() []Controller
- func (m *SolaModule) PostMiddlewares() []gin.HandlerFunc
- func (m *SolaModule) PreMiddlewares() []gin.HandlerFunc
- func (m *SolaModule) SetControllers(c ...Controller)
- func (m *SolaModule) SetPostMiddlewares(middlewares ...gin.HandlerFunc)
- func (m *SolaModule) SetPreMiddlewares(middlewares ...gin.HandlerFunc)
- func (m *SolaModule) SetRoutes(router *gin.RouterGroup)
- func (m *SolaModule) Uri() string
- type SolaService
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Controller ¶
type Controller interface {
// Handlers returns the slice of service definitions this controller manages.
Handlers() []*SolaService
// SetHandlers replaces the controller's service handlers with the provided list.
SetHandlers(handler ...*SolaService)
}
Controller declares a set of service handlers for a logical grouping of routes.
type Module ¶
type Module interface {
// PreMiddlewares returns middleware to run before each handler.
PreMiddlewares() []gin.HandlerFunc
// AddPreMiddleware appends a middleware to the pre-handler chain.
AddPreMiddleware(middleware gin.HandlerFunc)
// SetPreMiddlewares replaces the entire pre-handler middleware chain.
SetPreMiddlewares(middlewares ...gin.HandlerFunc)
// PostMiddlewares returns middleware to run after each handler.
PostMiddlewares() []gin.HandlerFunc
// AddPostMiddleware appends a middleware to the post-handler chain.
AddPostMiddleware(middleware gin.HandlerFunc)
// SetPostMiddlewares replaces the entire post-handler middleware chain.
SetPostMiddlewares(middlewares ...gin.HandlerFunc)
// Controllers returns the slice of Controller implementations in this module.
Controllers() []Controller
// SetControllers replaces all Controller implementations for this module.
SetControllers(c ...Controller)
// AddControllers appends one or more Controller implementations to this module.
AddControllers(c ...Controller)
// SetRoutes binds the module's controllers, middleware, and routes onto a RouterGroup.
SetRoutes(router *gin.RouterGroup)
// Uri returns the base URI path for this module (e.g., "/users").
Uri() string
}
Module represents a self-contained HTTP module with its own URI prefix, middleware layers, controllers, and dependencies.
type Runner ¶
type Runner interface {
// InitModules sets up all registered modules and their routes.
InitModules()
// InitGlobalMiddlewares registers any application-wide middleware.
InitGlobalMiddlewares()
// Modules returns a slice of pointers to registered Modules.
Modules() []Module
// SetModules registers one or more Modules with the Runner.
SetModules(m ...Module)
// GinEngine exposes the underlying *gin.Engine for custom setup.
GinEngine() *gin.Engine
// Port exposes the configured port for the HTTP server.
Port() int
// Cors applies CORS configuration to the Gin engine using functional options.
Cors(opts ...func(*cors.Option))
// Run boots the HTTP server, initializing modules and listening on the configured port.
Run()
}
Runner is the application entrypoint interface for Solanum. It manages module initialization, global middlewares, CORS, and server start.
func NewSolanum ¶
NewSolanum creates and returns a new Runner configured with the given options.
type SolaController ¶
type SolaController struct {
// contains filtered or unexported fields
}
SolaController groups one or more SolaService handlers under a logical controller. It implements the Controller interface.
func NewController ¶
func NewController() *SolaController
NewController constructs an empty SolaController ready to receive handlers.
func (*SolaController) Handlers ¶
func (ctr *SolaController) Handlers() []*SolaService
Handlers returns the slice of SolaService entries managed by this controller.
func (*SolaController) SetHandlers ¶
func (ctr *SolaController) SetHandlers(handlers ...*SolaService)
SetHandlers replaces the controller's handler list with the provided entries.
type SolaModule ¶
type SolaModule struct {
// contains filtered or unexported fields
}
SolaModule encapsulates a self-contained HTTP module with its own URI prefix, controllers, and middleware stacks.
func NewModule ¶
func NewModule(opts ...moduleOption) *SolaModule
NewModule creates a new SolaModule with the given URI prefix. The module starts with empty controller and middleware lists.
func (*SolaModule) AddControllers ¶
func (m *SolaModule) AddControllers(c ...Controller)
AddControllers appends one or more Controller implementations to this module.
func (*SolaModule) AddPostMiddleware ¶ added in v0.3.2
func (m *SolaModule) AddPostMiddleware(middleware gin.HandlerFunc)
AddPostMiddleware appends a single middleware to the post-handler chain.
func (*SolaModule) AddPreMiddleware ¶ added in v0.3.2
func (m *SolaModule) AddPreMiddleware(middleware gin.HandlerFunc)
AddPreMiddleware appends a single middleware to the pre-handler chain.
func (*SolaModule) Controllers ¶
func (m *SolaModule) Controllers() []Controller
Controllers returns all controllers registered in this module.
func (*SolaModule) PostMiddlewares ¶ added in v0.3.0
func (m *SolaModule) PostMiddlewares() []gin.HandlerFunc
PostMiddlewares returns the list of middleware to execute after handlers.
func (*SolaModule) PreMiddlewares ¶ added in v0.3.0
func (m *SolaModule) PreMiddlewares() []gin.HandlerFunc
PreMiddlewares returns the list of middleware to execute before handlers.
func (*SolaModule) SetControllers ¶
func (m *SolaModule) SetControllers(c ...Controller)
SetControllers registers one or more Controller implementations for this module.
func (*SolaModule) SetPostMiddlewares ¶ added in v0.4.0
func (m *SolaModule) SetPostMiddlewares(middlewares ...gin.HandlerFunc)
SetPostMiddlewares replaces the post-handler middleware chain with the provided list.
func (*SolaModule) SetPreMiddlewares ¶ added in v0.4.0
func (m *SolaModule) SetPreMiddlewares(middlewares ...gin.HandlerFunc)
SetPreMiddlewares replaces the pre-handler middleware chain with the provided list.
func (*SolaModule) SetRoutes ¶
func (m *SolaModule) SetRoutes(router *gin.RouterGroup)
SetRoutes registers the module's routes and middleware on the given RouterGroup. The final handler chain per route is: module pre-middlewares → service PreHandlers → handler → service PostHandlers → module post-middlewares.
func (*SolaModule) Uri ¶
func (m *SolaModule) Uri() string
Uri returns the base URI prefix for this module.
type SolaService ¶
type SolaService struct {
// Uri is the route path relative to the module prefix (e.g., "/:id").
Uri string
// Method is the HTTP method to bind (GET, POST, etc.).
Method string
// PreHandlers are middleware functions to run before Handler for this route only.
PreHandlers []gin.HandlerFunc
// Handler is the Gin handler function to execute.
Handler gin.HandlerFunc
// PostHandlers are middleware functions to run after Handler for this route only.
// Gin executes all handlers in the chain sequentially; ctx.Next() is not required.
// Use ctx.Abort() in any handler to stop further execution.
PostHandlers []gin.HandlerFunc
}
SolaService represents a single HTTP route handler configuration.