Documentation
¶
Index ¶
- func LoadPlugins(folder, pattern string, logger log.Logger)
- func NewBackendFactory(logger log.Logger, metricCollector *metrics.Metrics) proxy.BackendFactory
- func NewBackendFactoryWithContext(ctx context.Context, logger log.Logger, metricCollector *metrics.Metrics) proxy.BackendFactory
- func NewEngine(cfg config.ServiceConfig, logger log.Logger, w io.Writer) *gin.Engine
- func NewExecutor(ctx context.Context) cmd.Executor
- func NewHandlerFactory(logger log.Logger, metricCollector *metrics.Metrics, ...) router.HandlerFactory
- func NewProxyFactory(logger log.Logger, backendFactory proxy.BackendFactory, ...) proxy.Factory
- func RegisterEncoders()
- func RegisterSubscriberFactories(ctx context.Context, cfg config.ServiceConfig, logger log.Logger) func(n string, p int)
- type BackendFactory
- type BloomFilterJWT
- type DefaultRunServerFactory
- type EngineFactory
- type ExecutorBuilder
- type HandlerFactory
- type LoggerBuilder
- type LoggerFactory
- type MetricsAndTraces
- type MetricsAndTracesRegister
- type PluginLoader
- type ProxyFactory
- type RunServer
- type RunServerFactory
- type SubscriberFactoriesRegister
- type TokenRejecterFactory
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func LoadPlugins ¶
func NewBackendFactory ¶
func NewHandlerFactory ¶
func NewHandlerFactory(logger log.Logger, metricCollector *metrics.Metrics, rejecter jose.RejecterFactory) router.HandlerFactory
func NewProxyFactory ¶
func RegisterEncoders ¶
func RegisterEncoders()
Types ¶
type BackendFactory ¶
type BloomFilterJWT ¶
type BloomFilterJWT struct{}
func (BloomFilterJWT) NewTokenRejecter ¶
func (t BloomFilterJWT) NewTokenRejecter(ctx context.Context, cfg config.ServiceConfig, l log.Logger, reg func(n string, p int)) (jose.ChainedRejecterFactory, error)
type DefaultRunServerFactory ¶
type DefaultRunServerFactory struct{}
func (*DefaultRunServerFactory) NewRunServer ¶
func (d *DefaultRunServerFactory) NewRunServer(l log.Logger, next router.RunServerFunc) RunServer
type EngineFactory ¶
type ExecutorBuilder ¶
type ExecutorBuilder struct { LoggerFactory LoggerFactory PluginLoader PluginLoader SubscriberFactoriesRegister SubscriberFactoriesRegister TokenRejecterFactory TokenRejecterFactory MetricsAndTracesRegister MetricsAndTracesRegister EngineFactory EngineFactory ProxyFactory ProxyFactory BackendFactory BackendFactory HandlerFactory HandlerFactory RunServerFactory RunServerFactory Middlewares []gin.HandlerFunc }
func (*ExecutorBuilder) NewCmdExecutor ¶
func (e *ExecutorBuilder) NewCmdExecutor(ctx context.Context) cmd.Executor
type HandlerFactory ¶
type HandlerFactory interface {
NewHandlerFactory(log.Logger, *metrics.Metrics, jose.RejecterFactory) router.HandlerFactory
}
type LoggerBuilder ¶
type LoggerBuilder struct{}
func (LoggerBuilder) NewLogger ¶
func (LoggerBuilder) NewLogger(cfg config.ServiceConfig) (log.Logger, io.Writer, error)
type LoggerFactory ¶
type MetricsAndTraces ¶
type MetricsAndTraces struct{}
type PluginLoader ¶
type ProxyFactory ¶
type RunServerFactory ¶
type RunServerFactory interface {
NewRunServer(log.Logger, router.RunServerFunc) RunServer
}
type TokenRejecterFactory ¶
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
auth
|
|
jose
Package jose provides Javascript Object Signing and Encryption
|
Package jose provides Javascript Object Signing and Encryption |
oauth
Package oauth add support for auth2 client credentials grant to the Sonic API Gateway
|
Package oauth add support for auth2 client credentials grant to the Sonic API Gateway |
backend
|
|
lambda
Package lambda provides lambda functions for the Sonic API Gateway
|
Package lambda provides lambda functions for the Sonic API Gateway |
pubsub
Package pubsub provides a pubsub backend for the Sonic
|
Package pubsub provides a pubsub backend for the Sonic |
queue
Package queue provides an AMQP compatible backend for the Sonic API Gateway
|
Package queue provides an AMQP compatible backend for the Sonic API Gateway |
cmd
|
|
gateway
Sonic sets up a complete Sonic API Gateway ready to serve
|
Sonic sets up a complete Sonic API Gateway ready to serve |
modifier
|
|
interpreter
Package interpreter provides a lua interpreter for the Sonic API Gateway
|
Package interpreter provides a lua interpreter for the Sonic API Gateway |
qos
|
|
circuitbreaker/eapache
Package eapache provides a circuit breaker adapter using the github.com/eapache/go-resiliency/breaker lib
|
Package eapache provides a circuit breaker adapter using the github.com/eapache/go-resiliency/breaker lib |
circuitbreaker/gobreaker
Package gobreaker provides a circuit circuitbreaker adapter using the sony/gobreaker lib.
|
Package gobreaker provides a circuit circuitbreaker adapter using the sony/gobreaker lib. |
httpcache
Package httpcache introduces an in-memory-cached http client into the Sonic stack
|
Package httpcache introduces an in-memory-cached http client into the Sonic stack |
ratelimit
Package ratelimit contains a collection of curated rate limit adaptors for the Sonic API Gateway
|
Package ratelimit contains a collection of curated rate limit adaptors for the Sonic API Gateway |
ratelimit/juju
Package juju provides a set of rate-limit proxy and router middlewares using the github.com/juju/ratelimit lib
|
Package juju provides a set of rate-limit proxy and router middlewares using the github.com/juju/ratelimit lib |
ratelimit/juju/proxy
Package proxy provides a rate-limit proxy middleware using the github.com/juju/ratelimit lib
|
Package proxy provides a rate-limit proxy middleware using the github.com/juju/ratelimit lib |
ratelimit/juju/router
Package router provides several rate-limit routers using the github.com/juju/ratelimit lib.
|
Package router provides several rate-limit routers using the github.com/juju/ratelimit lib. |
ratelimit/rate
Package rate provides a set of rate-limit proxy and router middlewares using the golang.org/x/time/rate lib
|
Package rate provides a set of rate-limit proxy and router middlewares using the golang.org/x/time/rate lib |
ratelimit/rate/router
Package router provides several rate-limit routers using the golang.org/x/time/rate lib
|
Package router provides several rate-limit routers using the golang.org/x/time/rate lib |
security
|
|
cors
Package cors provides CORS support
|
Package cors provides CORS support |
detector
Package detector provides a bot detector middleware for the Sonic API Gateway
|
Package detector provides a bot detector middleware for the Sonic API Gateway |
httpsecure
Package httpsecure provides a complete http security layer for the Sonic API Gateway
|
Package httpsecure provides a complete http security layer for the Sonic API Gateway |
support
|
|
cobra
Package cobra defines the cobra command structs and an execution method for adding an improved CLI to Sonic based API Gateways
|
Package cobra defines the cobra command structs and an execution method for adding an improved CLI to Sonic based API Gateways |
conflex
Package conflex provides extended features for Sonic config parsers
|
Package conflex provides extended features for Sonic config parsers |
encoding/rss
Package rss provides RSS encoding support
|
Package rss provides RSS encoding support |
encoding/xml
Package xml provides XML encoding support
|
Package xml provides XML encoding support |
viper
Package viper defines a config parser implementation based on the viper pkg
|
Package viper defines a config parser implementation based on the viper pkg |
telemetry
|
|
gelf
Package gelf just return a gelf writer with the configuration provided via Sonic ExtraConfig
|
Package gelf just return a gelf writer with the configuration provided via Sonic ExtraConfig |
gologging
Package gologging provides a logger implementation based on the github.com/op/go-log pkg
|
Package gologging provides a logger implementation based on the github.com/op/go-log pkg |
influxdb
Package influxdb provides metric collector for Sonic
|
Package influxdb provides metric collector for Sonic |
logstash
Package logstash provides a logstash formatter for the sonic-gologging pkg
|
Package logstash provides a logstash formatter for the sonic-gologging pkg |
metrics
Package metrics defines a set of basic building blocks for instrumenting Sonic gateways
|
Package metrics defines a set of basic building blocks for instrumenting Sonic gateways |
metrics/gin
Package gin defines a set of basic building blocks for instrumenting Sonic gateways built using the gin router
|
Package gin defines a set of basic building blocks for instrumenting Sonic gateways built using the gin router |
metrics/mux
Package mux defines a set of basic building blocks for instrumenting Sonic gateways built using the mux router
|
Package mux defines a set of basic building blocks for instrumenting Sonic gateways built using the mux router |
Package test implements utility functions to help with API Gateway testing
|
Package test implements utility functions to help with API Gateway testing |
validation
|
|
explang
Package explang provides a Common Expression Language (EXPLANG) module for the Sonic API Gateway
|
Package explang provides a Common Expression Language (EXPLANG) module for the Sonic API Gateway |
jsonschema
Package jsonschema provides a JSONschema jsonschema for the Sonic API Gateway
|
Package jsonschema provides a JSONschema jsonschema for the Sonic API Gateway |
Click to show internal directories.
Click to hide internal directories.