Documentation
¶
Overview ¶
Package config defines the config structs and some config parser interfaces and implementations
Index ¶
Constants ¶
const ( // BracketsRouterPatternBuilder uses brackets as route params delimiter BracketsRouterPatternBuilder = iota // ColonRouterPatternBuilder use a colon as route param delimiter ColonRouterPatternBuilder )
Variables ¶
var RoutingPattern = ColonRouterPatternBuilder
RoutingPattern to use during route conversion. By default, use the colon router pattern
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend struct {
// the name of the group the response should be moved to. If empty, the response is
// not changed
Group string `mapstructure:"group"`
// HTTP method of the request to send to the backend
Method string `mapstructure:"method"`
// Set of hosts of the API
Host []string `mapstructure:"host"`
// False if the hostname should be sanitized
HostSanitizationDisabled bool `mapstructure:"disable_host_sanitize"`
// URL pattern to use to locate the resource to be consumed
URLPattern string `mapstructure:"url_pattern"`
// set of response fields to remove. If empty, the filter id not used
Blacklist []string `mapstructure:"blacklist"`
// set of response fields to allow. If empty, the filter id not used
Whitelist []string `mapstructure:"whitelist"`
// map of response fields to be renamed and their new names
Mapping map[string]string `mapstructure:"mapping"`
// the encoding format
Encoding string `mapstructure:"encoding"`
// the response to process is a collection
IsCollection bool `mapstructure:"is_collection"`
// name of the field to extract to the root. If empty, the formater will do nothing
Target string `mapstructure:"target"`
// list of keys to be replaced in the URLPattern
URLKeys []string
// number of concurrent calls this endpoint must send to the API
ConcurrentCalls int
// timeout of this backend
Timeout time.Duration
// decoder to use in order to parse the received response from the API
Decoder encoding.Decoder
}
Backend defines how krakend should connect to the backend service (the API resource to consume) and how it should process the received response
type EndpointConfig ¶
type EndpointConfig struct {
// url pattern to be registered and exposed to the world
Endpoint string `mapstructure:"endpoint"`
// HTTP method of the endpoint (GET, POST, PUT, etc)
Method string `mapstructure:"method"`
// set of definitions of the backends to be linked to this endpoint
Backend []*Backend `mapstructure:"backend"`
// number of concurrent calls this endpoint must send to the backends
ConcurrentCalls int `mapstructure:"concurrent_calls"`
// timeout of this endpoint
Timeout time.Duration `mapstructure:"timeout"`
// duration of the cache header
CacheTTL time.Duration `mapstructure:"cache_ttl"`
// list of query string params to be extracted from the URI
QueryString []string `mapstructure:"querystring_params"`
}
EndpointConfig defines the configuration of a single endpoint to be exposed by the krakend service
type Parser ¶
type Parser interface {
Parse(configFile string) (ServiceConfig, error)
}
Parser reads a configuration file, parses it and returns the content as an init ServiceConfig struct
type ServiceConfig ¶
type ServiceConfig struct {
// set of endpoint definitions
Endpoints []*EndpointConfig `mapstructure:"endpoints"`
// defafult timeout
Timeout time.Duration `mapstructure:"timeout"`
// default TTL for GET
CacheTTL time.Duration `mapstructure:"cache_ttl"`
// default set of hosts
Host []string `mapstructure:"host"`
// port to bind the krakend service
Port int `mapstructure:"port"`
// version code of the configuration
Version int `mapstructure:"version"`
// run krakend in debug mode
Debug bool
// contains filtered or unexported fields
}
ServiceConfig defines the krakend service
func (*ServiceConfig) Init ¶
func (s *ServiceConfig) Init() error
Init initializes the configuration struct and its defined endpoints and backends. Init also sanitizes the values, applies the default ones whenever necessary and normalizes all the things.
type URI ¶
type URI int
URI implements the URIParser interface
func (URI) CleanHost ¶
CleanHost sanitizes the received host
func (URI) CleanHosts ¶
CleanHosts applies the CleanHost method to every member of the received array of hosts
func (URI) CleanPath ¶
CleanPath trims all the extra slashes from the received URI path
Source Files
¶
- config.go
- parser.go
- uri.go