Documentation ¶
Index ¶
Constants ¶
const ( DevEnv = "dev" StgEnv = "stg" PrdEnv = "prd" DefaultEnv = DevEnv )
Variables ¶
This section is empty.
Functions ¶
func GetListNameHandler ¶
func GetListNameHandler(hdls []fiber.Handler) string
Types ¶
type AppFlagSet ¶
func (*AppFlagSet) GetSampleEnvs ¶
func (f *AppFlagSet) GetSampleEnvs()
func (*AppFlagSet) Parse ¶
func (f *AppFlagSet) Parse(args []string)
func (*AppFlagSet) ShowTable ¶
func (f *AppFlagSet) ShowTable(data [][]string)
type HttpServer ¶
type HttpServer interface { Runnable // Add handlers to GIN AddHandler(HttpServerHandler) // Return server config //GetConfig() http_server.Config // URI that the server is listening URI() string AddMiddleware(fiber.Handler) Routes() [][]*fiber.Route }
GIN HTTP server for REST API
type HttpServerHandler ¶
type HttpServerHandler = func(*fiber.App)
HTTP Server Handler for register some routes and gin handlers
type Option ¶
type Option func(*service)
Convenience option method for creating/initializing a service
func WithFileLogger ¶
func WithFileLogger() Option
Service will write log data to file with this option
func WithInitConfig ¶
func WithInitConfig(r PrefixConfigure) Option
Add init component to SDK, example elasticsearch, .... that is third party service These components will init config for service from flag and return service in plugin Behind, it can init config, example get key jwt, key env
func WithInitRunnable ¶
func WithInitRunnable(r PrefixRunnable) Option
Add init component to SDK These components will run sequentially before service run
func WithRunnable ¶
Add Runnable component to SDK These components will run parallel in when service run
func WithVersion ¶
Every deployment needs a specific version
type PrefixConfigure ¶
type PrefixConfigure interface { InitFlags() HasPrefix }
Config init flag for other config without init service Example set jwt key,... Service Provider for service thirth party Example: Telegram bot, elasticsearch, prdiction IO,...
type PrefixRunnable ¶
type Runnable ¶
type Runnable interface { Name() string InitFlags() Configure() error Run() error Stop() <-chan bool }
Runnable is an abstract object in SDK Almost components are Runnable. SDK will manage their lifecycle InitFlags -> Configure -> Run -> Stop
type Service ¶
type Service interface { // A part of Service, it's passed to all handlers/functions ServiceContext // Name of the service Name() string // Version of the service Version() string // Gin HTTP Server wrapper HTTPServer() HttpServer // Init with options, they can be db connections or // anything the service need handle before starting Init() error // This method returns service if it is registered on discovery IsRegistered() bool // Start service and its all component. // It will be stopped if any service return error Start() error // Stop service and its all component. Stop() // Method export all flags to std/terminal // We might use: "> .env" to move its content .env file OutEnv() //Router table RouteTable() SetHTTPServer(has bool) Service Create(config *fiber.Config) Service }
The heart of SDK, Service represents for a real micro service with its all components
type ServiceContext ¶
type ServiceContext interface { // Logger for a specific service, usually it has a prefix to distinguish // with each others Logger(prefix string) logger.Logger // Get component with prefix Get(prefix string) (interface{}, bool) MustGet(prefix string) interface{} Env() string }
Service Context: A wrapper for all things needed for developing a service
Directories ¶
Path | Synopsis |
---|---|
Logging provider Log only fully init when app.Run() called
|
Logging provider Log only fully init when app.Run() called |