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() InitPrefix(prefix ...string) error Add(opts ...Option) 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 |
---|---|
examples
|
|
Logging provider
|
Logging provider |
aws
----------------------------------------------------------------*\
|
----------------------------------------------------------------*\ |
fcm
----------------------------------------------------------------*\
|
----------------------------------------------------------------*\ |
util
|
|