Documentation
¶
Index ¶
- Variables
- func CreateMicroservice(serviceName string)
- func CreateMicroserviceProject(config *MicroserviceConfig) error
- func CreateNewProject(projectName string)
- func ForgeHandlerToFiberHandler(handler HandlerFunc, app *Application) fiber.Handler
- func GenerateController(name string, service string)
- func GenerateModel(name string, service string)
- func GenerateSwaggerUI(spec *OpenAPISpec) (string, error)
- func HandleError(ctx *Context, err error) error
- func SecurityHeaders() fiber.Handler
- type AppError
- type AppMode
- type Application
- func (app *Application) AddTracing()
- func (app *Application) Auth() *auth.JWTManager
- func (a *Application) ConfigureMiddleware(options ...interface{})
- func (app *Application) DB() *gorm.DB
- func (app *Application) EnableGracefulShutdown()
- func (app *Application) EnableHealthCheck(path string)
- func (app *Application) GenerateOpenAPI() (*OpenAPISpec, error)
- func (app *Application) GenerateRouteFiles() error
- func (a *Application) Get() *fiber.App
- func (app *Application) GetAuth() interface{}
- func (app *Application) GetConfig() interface{}
- func (app *Application) GetDB() interface{}
- func (app *Application) GetMailer() interface{}
- func (app *Application) GetQueue() interface{}
- func (a *Application) Group(prefix string) fiber.Router
- func (app *Application) Listen(addr string) error
- func (app *Application) Logger() *logger.Logger
- func (app *Application) Mailer() *mailer.Mailer
- func (app *Application) Plugins() *plugin.Manager
- func (app *Application) Queue() *queue.Queue
- func (app *Application) RegisterController(controller interface{})
- func (app *Application) Routes() *RouteManager
- func (app *Application) Serve() error
- func (app *Application) Shutdown() error
- func (app *Application) Start() error
- func (app *Application) Test(req *http.Request) (*http.Response, error)
- func (a *Application) Use(middleware ...interface{})
- func (app *Application) Validator() *validator.Validate
- func (app *Application) WithLogField(key string, value interface{}) *logger.Logger
- type CORSConfig
- type Config
- type Context
- func (c *Context) App() *Application
- func (c *Context) Bind(v interface{}) error
- func (c *Context) BindAndValidate(v interface{}) error
- func (c *Context) Error(err error) error
- func (c *Context) FormFile(key string) (*multipart.FileHeader, error)
- func (c *Context) FormValue(key string) string
- func (c *Context) HTML(html string) error
- func (c *Context) Header(key string) string
- func (c *Context) JSON(data interface{}) error
- func (c *Context) Negotiate(data interface{}) error
- func (c *Context) Param(name string) string
- func (c *Context) Query(key string) string
- func (c *Context) QueryDefault(key, defaultValue string) string
- func (c *Context) Redirect(url string, status ...int) error
- func (c *Context) RespondWithValidationErrors(errors ValidationErrors) error
- func (c *Context) SaveFile(file *multipart.FileHeader, path string) error
- func (c *Context) SendFile(file string) error
- func (c *Context) SetHeader(key, value string)
- func (c *Context) Status(code int) *Context
- func (c *Context) Stream(contentType string, reader func(w io.Writer) error) error
- func (c *Context) Success(data interface{}) error
- func (c *Context) Text(text string) error
- func (c *Context) Validate(v interface{}) error
- func (c *Context) ValidateWithDetails(i interface{}) ValidationErrors
- func (c *Context) XML(data interface{}) error
- type Controller
- func (c *Controller) App() *Application
- func (c *Controller) GetRouteByName(name string) *Route
- func (c *Controller) GetRoutes() map[string]*Route
- func (c *Controller) Group(prefix string) *ControllerGroup
- func (c *Controller) Name() string
- func (c *Controller) RegisterRoute(method, path, description string, handler HandlerFunc) *Route
- func (c *Controller) RegisterRoutes(router fiber.Router)
- func (c *Controller) SetApplication(app *Application)
- func (c *Controller) SetName(name string)
- func (c *Controller) Use(middleware ...MiddlewareFunc)
- type ControllerGroup
- type Database
- func (d *Database) AutoMigrate(models ...interface{}) error
- func (d *Database) Close() error
- func (d *Database) Create(value interface{}) error
- func (d *Database) Delete(value interface{}) error
- func (d *Database) Exec(sql string, values ...interface{}) error
- func (d *Database) Find(dest interface{}, cond ...interface{}) error
- func (d *Database) First(dest interface{}, cond ...interface{}) error
- func (d *Database) GetDriverName() string
- func (d *Database) Model(value interface{}) *gorm.DB
- func (d *Database) Ping() error
- func (d *Database) Preload(query string, args ...interface{}) *gorm.DB
- func (d *Database) Raw(sql string, dest interface{}, values ...interface{}) error
- func (d *Database) Scopes(funcs ...func(*gorm.DB) *gorm.DB) *gorm.DB
- func (d *Database) Transaction(fc func(tx *gorm.DB) error) error
- func (d *Database) Update(value interface{}) error
- func (d *Database) Where(query interface{}, args ...interface{}) *gorm.DB
- type DatabaseConfig
- type H
- type HandlerFunc
- type HotReloader
- type MediaTypeObject
- type Microservice
- func (ms *Microservice) AddRoute(method, path, description string, handler HandlerFunc) *Microservice
- func (ms *Microservice) App() *Application
- func (ms *Microservice) DELETE(path, description string, handler HandlerFunc) *Microservice
- func (ms *Microservice) EnableGracefulShutdown()
- func (ms *Microservice) GET(path, description string, handler HandlerFunc) *Microservice
- func (ms *Microservice) GetOpenConnections() int
- func (ms *Microservice) Logger() *logger.Logger
- func (ms *Microservice) PATCH(path, description string, handler HandlerFunc) *Microservice
- func (ms *Microservice) POST(path, description string, handler HandlerFunc) *Microservice
- func (ms *Microservice) PUT(path, description string, handler HandlerFunc) *Microservice
- func (ms *Microservice) Setup() error
- func (ms *Microservice) Start() error
- func (ms *Microservice) StartWithHotReload() error
- func (ms *Microservice) Stop() error
- func (ms *Microservice) WithConfig(config *MicroserviceConfig) *Microservice
- type MicroserviceConfig
- type MiddlewareConfig
- type MiddlewareFunc
- type MiddlewareOption
- func WithBodyLimit(limit string) MiddlewareOption
- func WithCORS(config CORSConfig) MiddlewareOption
- func WithCompress() MiddlewareOption
- func WithIdleTimeout(idle time.Duration) MiddlewareOption
- func WithLimiter(config ...limiter.Config) MiddlewareOption
- func WithLogger(config ...fiber.Config) MiddlewareOption
- func WithRecover() MiddlewareOption
- func WithRequestID() MiddlewareOption
- func WithTimeout(read, write time.Duration) MiddlewareOption
- type Migration
- type MigrationManager
- type OpenAPIComponents
- type OpenAPIInfo
- type OpenAPISpec
- type Operation
- type Parameter
- type PathItem
- type RateLimitConfig
- type RequestBody
- type Response
- type Route
- type RouteDoc
- type RouteInfo
- type RouteManager
- func (rm *RouteManager) Add(method, path, handler, description string)
- func (rm *RouteManager) AddFromRoute(route *Route, handlerName string)
- func (rm *RouteManager) GenerateControllerRoutes(outputDir, controllerName string, routes []RouteDoc) error
- func (rm *RouteManager) GenerateRoutesFile(outputDir string) error
- func (rm *RouteManager) SortRoutes()
- type Schema
- type SecurityScheme
- type ServerConfig
- type ValidationErrors
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNotFound = NewAppError("not found", http.StatusNotFound) ErrForbidden = NewAppError("forbidden", http.StatusForbidden) ErrBadRequest = NewAppError("bad request", http.StatusBadRequest) ErrInternalError = NewAppError("internal server error", http.StatusInternalServerError) ErrValidation = NewAppError("validation error", http.StatusBadRequest) )
Functions ¶
func CreateMicroservice ¶
func CreateMicroservice(serviceName string)
func CreateMicroserviceProject ¶
func CreateMicroserviceProject(config *MicroserviceConfig) error
func CreateNewProject ¶
func CreateNewProject(projectName string)
func ForgeHandlerToFiberHandler ¶
func ForgeHandlerToFiberHandler(handler HandlerFunc, app *Application) fiber.Handler
func GenerateController ¶
func GenerateModel ¶
func GenerateSwaggerUI ¶
func GenerateSwaggerUI(spec *OpenAPISpec) (string, error)
func HandleError ¶
func SecurityHeaders ¶
Types ¶
type AppError ¶
type AppError struct {
Message string `json:"message"`
StatusCode int `json:"-"`
Code string `json:"code,omitempty"`
Details map[string]interface{} `json:"details,omitempty"`
Err error `json:"-"`
}
func AsAppError ¶
func NewAppError ¶
func NotFoundError ¶
func ValidationError ¶
func (*AppError) WithDetail ¶
func (*AppError) WithDetails ¶
type Application ¶
type Application struct {
// contains filtered or unexported fields
}
func New ¶
func New(config *Config) (*Application, error)
func (*Application) AddTracing ¶
func (app *Application) AddTracing()
func (*Application) Auth ¶
func (app *Application) Auth() *auth.JWTManager
func (*Application) ConfigureMiddleware ¶
func (a *Application) ConfigureMiddleware(options ...interface{})
func (*Application) DB ¶
func (app *Application) DB() *gorm.DB
func (*Application) EnableGracefulShutdown ¶
func (app *Application) EnableGracefulShutdown()
func (*Application) EnableHealthCheck ¶
func (app *Application) EnableHealthCheck(path string)
func (*Application) GenerateOpenAPI ¶
func (app *Application) GenerateOpenAPI() (*OpenAPISpec, error)
func (*Application) GenerateRouteFiles ¶
func (app *Application) GenerateRouteFiles() error
func (*Application) Get ¶
func (a *Application) Get() *fiber.App
func (*Application) GetAuth ¶
func (app *Application) GetAuth() interface{}
func (*Application) GetConfig ¶
func (app *Application) GetConfig() interface{}
func (*Application) GetDB ¶
func (app *Application) GetDB() interface{}
func (*Application) GetMailer ¶
func (app *Application) GetMailer() interface{}
func (*Application) GetQueue ¶
func (app *Application) GetQueue() interface{}
func (*Application) Listen ¶
func (app *Application) Listen(addr string) error
func (*Application) Logger ¶
func (app *Application) Logger() *logger.Logger
func (*Application) Mailer ¶
func (app *Application) Mailer() *mailer.Mailer
func (*Application) Plugins ¶
func (app *Application) Plugins() *plugin.Manager
func (*Application) Queue ¶
func (app *Application) Queue() *queue.Queue
func (*Application) RegisterController ¶
func (app *Application) RegisterController(controller interface{})
func (*Application) Routes ¶
func (app *Application) Routes() *RouteManager
func (*Application) Serve ¶
func (app *Application) Serve() error
func (*Application) Shutdown ¶
func (app *Application) Shutdown() error
func (*Application) Start ¶
func (app *Application) Start() error
func (*Application) Use ¶
func (a *Application) Use(middleware ...interface{})
func (*Application) Validator ¶
func (app *Application) Validator() *validator.Validate
func (*Application) WithLogField ¶
func (app *Application) WithLogField(key string, value interface{}) *logger.Logger
type CORSConfig ¶
type CORSConfig struct {
AllowOrigins string `yaml:"allow_origins" json:"allow_origins"`
AllowMethods string `yaml:"allow_methods" json:"allow_methods"`
AllowHeaders string `yaml:"allow_headers" json:"allow_headers"`
AllowCredentials bool `yaml:"allow_credentials" json:"allow_credentials"`
ExposeHeaders string `yaml:"expose_headers" json:"expose_headers"`
MaxAge int `yaml:"max_age" json:"max_age"`
}
func DefaultCORSConfig ¶
func DefaultCORSConfig() CORSConfig
type Config ¶
type Config struct {
Name string
Version string
Description string
Server ServerConfig
Database DatabaseConfig
Auth auth.Config
Mailer mailer.Config
Queue queue.Config
CORS CORSConfig
LogLevel string
}
type Context ¶
func NewContext ¶
func NewContext(c *fiber.Ctx, app *Application) *Context
func (*Context) App ¶
func (c *Context) App() *Application
func (*Context) BindAndValidate ¶
func (*Context) QueryDefault ¶
func (*Context) RespondWithValidationErrors ¶
func (c *Context) RespondWithValidationErrors(errors ValidationErrors) error
func (*Context) SaveFile ¶
func (c *Context) SaveFile(file *multipart.FileHeader, path string) error
func (*Context) ValidateWithDetails ¶
func (c *Context) ValidateWithDetails(i interface{}) ValidationErrors
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
func (*Controller) App ¶
func (c *Controller) App() *Application
func (*Controller) GetRouteByName ¶
func (c *Controller) GetRouteByName(name string) *Route
func (*Controller) GetRoutes ¶
func (c *Controller) GetRoutes() map[string]*Route
func (*Controller) Group ¶
func (c *Controller) Group(prefix string) *ControllerGroup
func (*Controller) Name ¶
func (c *Controller) Name() string
func (*Controller) RegisterRoute ¶
func (c *Controller) RegisterRoute(method, path, description string, handler HandlerFunc) *Route
func (*Controller) RegisterRoutes ¶
func (c *Controller) RegisterRoutes(router fiber.Router)
func (*Controller) SetApplication ¶
func (c *Controller) SetApplication(app *Application)
func (*Controller) SetName ¶
func (c *Controller) SetName(name string)
func (*Controller) Use ¶
func (c *Controller) Use(middleware ...MiddlewareFunc)
type ControllerGroup ¶
type ControllerGroup struct {
// contains filtered or unexported fields
}
func (*ControllerGroup) Add ¶
func (g *ControllerGroup) Add(controller interface{}) *ControllerGroup
func (*ControllerGroup) Register ¶
func (g *ControllerGroup) Register(app *Application)
func (*ControllerGroup) SetName ¶
func (g *ControllerGroup) SetName(name string) *ControllerGroup
func (*ControllerGroup) Use ¶
func (g *ControllerGroup) Use(middleware ...MiddlewareFunc) *ControllerGroup
type Database ¶
func NewDatabase ¶
func NewDatabase(config *DatabaseConfig) (*Database, error)
func (*Database) AutoMigrate ¶
func (*Database) GetDriverName ¶
type DatabaseConfig ¶
type DatabaseConfig struct {
Driver string
Name string
Host string
Port int
Username string
Password string
SSLMode string
Charset string
Timezone string
MaxOpenConns int
MaxIdleConns int
ConnMaxLife time.Duration
SlowThreshold time.Duration
LogLevel logger.LogLevel
Debug bool
}
func DefaultDatabaseConfig ¶
func DefaultDatabaseConfig() *DatabaseConfig
type HandlerFunc ¶
type HotReloader ¶
type HotReloader struct {
// contains filtered or unexported fields
}
func NewHotReloader ¶
func NewHotReloader(app *Application) (*HotReloader, error)
func NewMicroserviceHotReloader ¶
func NewMicroserviceHotReloader(app *Application, microserviceName, entrypointPath string) (*HotReloader, error)
func (*HotReloader) SetCustomBuildCommand ¶
func (h *HotReloader) SetCustomBuildCommand(cmd ...string)
func (*HotReloader) SetCustomRunCommand ¶
func (h *HotReloader) SetCustomRunCommand(cmd ...string)
func (*HotReloader) SetProjectRoot ¶
func (h *HotReloader) SetProjectRoot(path string)
func (*HotReloader) Start ¶
func (h *HotReloader) Start() error
func (*HotReloader) Stop ¶
func (h *HotReloader) Stop() error
type MediaTypeObject ¶
type MediaTypeObject struct {
Schema *Schema `json:"schema"`
}
type Microservice ¶
type Microservice struct {
Name string
Version string
Description string
// contains filtered or unexported fields
}
func NewMicroservice ¶
func NewMicroservice(name, version, description string) *Microservice
func (*Microservice) AddRoute ¶
func (ms *Microservice) AddRoute(method, path, description string, handler HandlerFunc) *Microservice
func (*Microservice) App ¶
func (ms *Microservice) App() *Application
func (*Microservice) DELETE ¶
func (ms *Microservice) DELETE(path, description string, handler HandlerFunc) *Microservice
func (*Microservice) EnableGracefulShutdown ¶
func (ms *Microservice) EnableGracefulShutdown()
func (*Microservice) GET ¶
func (ms *Microservice) GET(path, description string, handler HandlerFunc) *Microservice
func (*Microservice) GetOpenConnections ¶
func (ms *Microservice) GetOpenConnections() int
func (*Microservice) Logger ¶
func (ms *Microservice) Logger() *logger.Logger
func (*Microservice) PATCH ¶
func (ms *Microservice) PATCH(path, description string, handler HandlerFunc) *Microservice
func (*Microservice) POST ¶
func (ms *Microservice) POST(path, description string, handler HandlerFunc) *Microservice
func (*Microservice) PUT ¶
func (ms *Microservice) PUT(path, description string, handler HandlerFunc) *Microservice
func (*Microservice) Setup ¶
func (ms *Microservice) Setup() error
func (*Microservice) StartWithHotReload ¶
func (ms *Microservice) StartWithHotReload() error
func (*Microservice) Stop ¶
func (ms *Microservice) Stop() error
func (*Microservice) WithConfig ¶
func (ms *Microservice) WithConfig(config *MicroserviceConfig) *Microservice
type MicroserviceConfig ¶
type MicroserviceConfig struct {
Name string `yaml:"name" json:"name"`
Port int `yaml:"port" json:"port"`
Host string `yaml:"host" json:"host"`
Description string `yaml:"description" json:"description"`
ReadTimeout time.Duration `yaml:"read_timeout" json:"read_timeout"`
WriteTimeout time.Duration `yaml:"write_timeout" json:"write_timeout"`
BodyLimit string `yaml:"body_limit" json:"body_limit"`
CORS CORSConfig `yaml:"cors" json:"cors"`
LogLevel string `yaml:"log_level" json:"log_level"`
EnableTracing bool `yaml:"enable_tracing" json:"enable_tracing"`
Metrics bool `yaml:"metrics" json:"metrics"`
HealthCheck bool `yaml:"health_check" json:"health_check"`
WithDB bool `yaml:"with_db" json:"with_db"`
WithCache bool `yaml:"with_cache" json:"with_cache"`
WithQueue bool `yaml:"with_queue" json:"with_queue"`
WithAuth bool `yaml:"with_auth" json:"with_auth"`
}
func DefaultMicroserviceConfig ¶
func DefaultMicroserviceConfig() *MicroserviceConfig
type MiddlewareConfig ¶
type MiddlewareConfig struct {
Compress bool
CORS bool
CORSConfig CORSConfig
Logger bool
LoggerConfig fiber.Config
Limiter bool
LimiterConfig limiter.Config
Recover bool
RequestID bool
RateLimit bool
RateLimitConfig RateLimitConfig
BodyLimit string
ReadTimeout time.Duration
WriteTimeout time.Duration
IdleTimeout time.Duration
}
type MiddlewareFunc ¶
type MiddlewareFunc func(HandlerFunc) HandlerFunc
type MiddlewareOption ¶
type MiddlewareOption func(*MiddlewareConfig)
func WithBodyLimit ¶
func WithBodyLimit(limit string) MiddlewareOption
func WithCORS ¶
func WithCORS(config CORSConfig) MiddlewareOption
func WithCompress ¶
func WithCompress() MiddlewareOption
func WithIdleTimeout ¶
func WithIdleTimeout(idle time.Duration) MiddlewareOption
func WithLimiter ¶
func WithLimiter(config ...limiter.Config) MiddlewareOption
func WithLogger ¶
func WithLogger(config ...fiber.Config) MiddlewareOption
func WithRecover ¶
func WithRecover() MiddlewareOption
func WithRequestID ¶
func WithRequestID() MiddlewareOption
func WithTimeout ¶
func WithTimeout(read, write time.Duration) MiddlewareOption
type MigrationManager ¶
func NewMigrationManager ¶
func NewMigrationManager(db *Database) *MigrationManager
func (*MigrationManager) AddMigration ¶
func (m *MigrationManager) AddMigration(name string, up, down func(*gorm.DB) error)
func (*MigrationManager) Migrate ¶
func (m *MigrationManager) Migrate() error
func (*MigrationManager) Rollback ¶
func (m *MigrationManager) Rollback(steps int) error
type OpenAPIComponents ¶
type OpenAPIComponents struct {
Schemas map[string]*Schema `json:"schemas"`
SecuritySchemes map[string]SecurityScheme `json:"securitySchemes"`
}
type OpenAPIInfo ¶
type OpenAPISpec ¶
type OpenAPISpec struct {
OpenAPI string `json:"openapi"`
Info OpenAPIInfo `json:"info"`
Paths map[string]PathItem `json:"paths"`
Components OpenAPIComponents `json:"components"`
}
type Operation ¶
type Operation struct {
Summary string `json:"summary"`
Description string `json:"description"`
OperationID string `json:"operationId,omitempty"`
Parameters []*Parameter `json:"parameters,omitempty"`
RequestBody *RequestBody `json:"requestBody,omitempty"`
Responses map[string]*Response `json:"responses"`
Tags []string `json:"tags,omitempty"`
Security []map[string][]string `json:"security,omitempty"`
}
type RateLimitConfig ¶
type RateLimitConfig struct {
Enabled bool `yaml:"enabled" json:"enabled"`
Max int `yaml:"max" json:"max"`
Duration time.Duration `yaml:"duration" json:"duration"`
KeyGenerator func(*fiber.Ctx) string
Storage fiber.Storage
SkipFailedRequests bool `yaml:"skip_failed" json:"skip_failed"`
SkipPaths []string `yaml:"skip_paths" json:"skip_paths"`
LimitReached func(*fiber.Ctx) error
}
func DefaultRateLimitConfig ¶
func DefaultRateLimitConfig() RateLimitConfig
type RequestBody ¶
type RequestBody struct {
Description string `json:"description"`
Required bool `json:"required"`
Content map[string]MediaTypeObject `json:"content"`
}
type Response ¶
type Response struct {
Description string `json:"description"`
Content map[string]MediaTypeObject `json:"content,omitempty"`
}
type Route ¶
type Route struct {
Name string
Method string
Path string
Description string
RequestBody interface{}
Response interface{}
Handler HandlerFunc
}
func (*Route) SetRequestBody ¶
func (*Route) SetResponse ¶
type RouteManager ¶
type RouteManager struct {
// contains filtered or unexported fields
}
func NewRouteManager ¶
func NewRouteManager(app *Application) *RouteManager
func (*RouteManager) Add ¶
func (rm *RouteManager) Add(method, path, handler, description string)
func (*RouteManager) AddFromRoute ¶
func (rm *RouteManager) AddFromRoute(route *Route, handlerName string)
func (*RouteManager) GenerateControllerRoutes ¶
func (rm *RouteManager) GenerateControllerRoutes(outputDir, controllerName string, routes []RouteDoc) error
func (*RouteManager) GenerateRoutesFile ¶
func (rm *RouteManager) GenerateRoutesFile(outputDir string) error
func (*RouteManager) SortRoutes ¶
func (rm *RouteManager) SortRoutes()
type Schema ¶
type Schema struct {
Type string `json:"type,omitempty"`
Format string `json:"format,omitempty"`
Description string `json:"description,omitempty"`
Properties map[string]*Schema `json:"properties,omitempty"`
Items *Schema `json:"items,omitempty"`
Required []string `json:"required,omitempty"`
AdditionalProperties *Schema `json:"additionalProperties,omitempty"`
}
type SecurityScheme ¶
type ServerConfig ¶
type ValidationErrors ¶
func (ValidationErrors) Error ¶
func (ve ValidationErrors) Error() string
Source Files
¶
Click to show internal directories.
Click to hide internal directories.