Documentation
¶
Index ¶
Constants ¶
const ( DevEnv = "dev" StgEnv = "stg" PrdEnv = "prd" DefaultEnv = DevEnv )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AppFlagSet ¶
func (*AppFlagSet) GetSampleEnvs ¶
func (f *AppFlagSet) GetSampleEnvs()
func (*AppFlagSet) Parse ¶
func (f *AppFlagSet) Parse(args []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
}
GIN HTTP server for REST API
type HttpServerHandler ¶
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 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 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()
}
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 |
|---|---|
|
examples
|
|
|
aws
command
|
|
|
clickhouse
command
|
|
|
cloudinary
command
|
|
|
elastic
command
|
|
|
fcm
command
|
|
|
httpservice
command
|
|
|
imgprocessing
command
|
|
|
natio
command
|
|
|
Logging provider
|
Logging provider |
|
aws
----------------------------------------------------------------*\
|
----------------------------------------------------------------*\ |
|
fcm
----------------------------------------------------------------*\
|
----------------------------------------------------------------*\ |
|
oauthclient/example
command
|
|
|
util
|
|