Documentation ¶
Index ¶
- Variables
- func BuildDownstreamGRPCClient(_ string, cfg *config.CommonGRPCDownstreamData) (*grpc.ClientConn, error)
- func BuildDownstreamHTTPClient(serviceName string, cfg *config.CommonDownstreamData) (*http.Client, error)
- func ConfigFileSystemOnto(ctx context.Context, fs afero.Fs) context.Context
- func GetAppConfigType(createService interface{}) reflect.Type
- func InitialiseLogging(ctx context.Context, configs []log.Config, logrusLogger *logrus.Logger) context.Context
- func LoadCustomConfig(ctx context.Context, customConfig interface{}) (interface{}, error)
- func MustTypeCheckCreateService(createService, serviceInterface interface{})
- func NewZeroCustomConfig(downstreamConfigType, appConfigType reflect.Type) interface{}
- func Recoverer(ctx context.Context) func(http.Handler) http.Handler
- func SelectBasePath(fromSpec, dynamic string) string
- func Serve(ctx context.Context, ...) error
- func Server(ctx context.Context, name string, hl Manager, grpcHl GrpcManager, ...) errordeprecated
- type GrpcGenCallback
- type GrpcManager
- type HTTPManager
- type Manager
- type RestCallback
- type RestGenCallback
- type ServerOption
- func WithGrpcManager(manager GrpcManager) ServerOption
- func WithLogrusLogger(logger *logrus.Logger) ServerOptiondeprecated
- func WithPkgLogger(configs ...log.Config) ServerOption
- func WithPrometheusRegistry(prometheusRegistry *prometheus.Registry) ServerOption
- func WithRestManager(manager Manager) ServerOption
- type ServerParams
- type TLSLogFilter
Constants ¶
This section is empty.
Variables ¶
var ( // Name is set at the build time Name = "" // Version is set at the build time Version = "" // BuildID is set at the build time BuildID = "" // CommitSha is set at the build time CommitSha = "" // BranchName is set at the build time BranchName = "" // TagName is set at the build time TagName = "" )
Functions ¶
func BuildDownstreamGRPCClient ¶ added in v0.56.0
func BuildDownstreamGRPCClient(_ string, cfg *config.CommonGRPCDownstreamData) (*grpc.ClientConn, error)
func ConfigFileSystemOnto ¶ added in v0.84.0
ConfigFileSystemOnto adds a config filesystem to ctx.
func GetAppConfigType ¶ added in v0.87.0
GetAppConfigType extracts the app's config type from createService. Precondition: MustTypeCheckCreateService(createService, serviceInterface) succeeded.
func InitialiseLogging ¶ added in v0.85.0
func InitialiseLogging(ctx context.Context, configs []log.Config, logrusLogger *logrus.Logger) context.Context
initialise the logger sysl-go always uses a pkg logger internally. if custom code passes in a logrus logger, a mechanism which is deprecated, then a hook is added to the internal pkg logger that forwards logged events to the provided logrus logger. sysl-go can be requested to log in a verbose manner. logger in a verbose manner logs additional details within log events where appropriate. the mechanism to set this verbose manner is to either have a sufficiently high logrus log level or the verbose mode set against the pkg logger.
func LoadCustomConfig ¶ added in v0.87.0
LoadCustomConfig populates the given zero customConfig value with configuration data.
func MustTypeCheckCreateService ¶ added in v0.87.0
func MustTypeCheckCreateService(createService, serviceInterface interface{})
MustTypeCheckCreateService checks that the given createService has an acceptable type, and panics otherwise.
func NewZeroCustomConfig ¶ added in v0.87.0
NewZeroCustomConfig uses reflection to create a new type derived from DefaultConfig, but with new GenCode.Downstream and App fields holding the same types as downstreamConfig and appConfig. It returns a pointer to a zero value of that new type.
func SelectBasePath ¶
SelectBasePath chooses between a specified base path and a dynmaically chosen one.
func Serve ¶ added in v0.84.0
func Serve( ctx context.Context, downstreamConfig, createService, serviceInterface interface{}, newManager func(cfg *config.DefaultConfig, serviceIntf interface{}, callback *RestCallback) (interface{}, error), ) error
Serve serves an auto-generated service.
Types ¶
type GrpcGenCallback ¶ added in v0.4.0
type GrpcGenCallback interface {
DownstreamTimeoutContext(ctx context.Context) (context.Context, context.CancelFunc)
}
GrpcGenCallback is currently a subset of RestGenCallback so is defined separately for convenience.
type GrpcManager ¶
type GrpcManager interface { Interceptors() []grpc.UnaryServerInterceptor EnabledGrpcHandlers() []handlerinitialiser.GrpcHandlerInitialiser GrpcAdminServerConfig() *config.CommonServerConfig GrpcPublicServerConfig() *config.CommonServerConfig }
type HTTPManager ¶ added in v0.87.0
type HTTPManager struct {
// contains filtered or unexported fields
}
func NewHTTPManager ¶ added in v0.87.0
func NewHTTPManager(libraryConfig *config.LibraryConfig, adminServerConfig *config.CommonHTTPServerConfig, publicServerConfig *config.CommonHTTPServerConfig, enabledHandlers []handlerinitialiser.HandlerInitialiser) *HTTPManager
func (*HTTPManager) AdminServerConfig ¶ added in v0.87.0
func (h *HTTPManager) AdminServerConfig() *config.CommonHTTPServerConfig
func (*HTTPManager) EnabledHandlers ¶ added in v0.87.0
func (h *HTTPManager) EnabledHandlers() []handlerinitialiser.HandlerInitialiser
func (*HTTPManager) LibraryConfig ¶ added in v0.87.0
func (h *HTTPManager) LibraryConfig() *config.LibraryConfig
func (*HTTPManager) PublicServerConfig ¶ added in v0.87.0
func (h *HTTPManager) PublicServerConfig() *config.CommonHTTPServerConfig
type Manager ¶
type Manager interface { EnabledHandlers() []handlerinitialiser.HandlerInitialiser LibraryConfig() *config.LibraryConfig AdminServerConfig() *config.CommonHTTPServerConfig PublicServerConfig() *config.CommonHTTPServerConfig }
type RestCallback ¶ added in v0.85.0
type RestGenCallback ¶ added in v0.4.0
type RestGenCallback interface { // AddMiddleware allows hand-crafted code to add middleware to the router AddMiddleware(ctx context.Context, r chi.Router) // BasePath allows hand-crafted code to set the base path for the Router BasePath() string // Config returns a structure representing the server config // This is returned from the status endpoint Config() interface{} // MapError maps an error to an HTTPError in instances where custom error mapping is required. Return nil to perform default error mapping; defined as: // 1. CustomError.HTTPError if the original error is a CustomError, otherwise // 2. common.MapError MapError(ctx context.Context, err error) *common.HTTPError // DownstreamTimeoutContext add the desired timeout duration to the context for downstreams // A separate service timeout (usually greater than the downstream) should also be in // place to automatically respond to callers DownstreamTimeoutContext(ctx context.Context) (context.Context, context.CancelFunc) }
RestGenCallback is used by `sysl-go` to call hand-crafted code.
type ServerOption ¶ added in v0.24.0
type ServerOption interface {
// contains filtered or unexported methods
}
func WithGrpcManager ¶ added in v0.24.0
func WithGrpcManager(manager GrpcManager) ServerOption
func WithLogrusLogger
deprecated
added in
v0.24.0
func WithLogrusLogger(logger *logrus.Logger) ServerOption
Deprecated: Use WithPkgLogger instead.
func WithPkgLogger ¶ added in v0.32.0
func WithPkgLogger(configs ...log.Config) ServerOption
func WithPrometheusRegistry ¶ added in v0.24.0
func WithPrometheusRegistry(prometheusRegistry *prometheus.Registry) ServerOption
func WithRestManager ¶ added in v0.24.0
func WithRestManager(manager Manager) ServerOption
type ServerParams ¶ added in v0.24.0
type ServerParams struct { Ctx context.Context Name string // contains filtered or unexported fields }
func NewServerParams ¶ added in v0.24.0
func NewServerParams(ctx context.Context, name string, opts ...ServerOption) *ServerParams
func (*ServerParams) Start ¶ added in v0.24.0
func (params *ServerParams) Start() error
type TLSLogFilter ¶
type TLSLogFilter struct {
// contains filtered or unexported fields
}