Documentation
¶
Index ¶
- Variables
- type Configuration
- type Controller
- type HTTPConfiguration
- type HTTPSConfiguration
- type HealthCheckHandler
- type HealthCheckHandlerFunc
- type HealthCheckResponse
- type MockHealthCheckHandler
- type Router
- func (r *Router) AddController(controller Controller)
- func (r *Router) AddHealthCheck(name string, handle HealthCheckHandler) error
- func (r *Router) AddPrefixRoute(prefix string, handler http.Handler) *mux.Route
- func (r *Router) AddPrefixRouteFunc(prefix string, handler http.HandlerFunc) *mux.Route
- func (r *Router) AddRoute(path string, handler http.Handler) *mux.Route
- func (r *Router) AddRouteFunc(path string, handler http.HandlerFunc) *mux.Route
- func (r *Router) EnableCors()
- func (r *Router) EnableCorsWithOptions(options cors.Options)
- func (r *Router) EnableHealthCheck()
- func (r *Router) EnableMetrics()
- func (r *Router) EnableProfiling()
- func (r *Router) EnableProxy()
- func (r *Router) EnableRecovery()
- func (r *Router) SetNotFound(handler http.Handler)
- func (r *Router) SetNotFoundFunc(handler http.HandlerFunc)
- type Server
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultCurvePreferences defines the recommended elliptic curves for modern TLS DefaultCurvePreferences = []tls.CurveID{ tls.CurveP256, tls.X25519, } // DefaultCipherSuites defines the recommended cipher suites for modern TLS DefaultCipherSuites = []uint16{ tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, } // DefaultMinVersion defines the recommended minimum version to use for the TLS protocol (1.2) DefaultMinVersion uint16 = tls.VersionTLS12 // DefaultReadTimeout sets the maximum time a client has to fully stream a request (5s) DefaultReadTimeout = 5 * time.Second // DefaultWriteTimeout sets the maximum amount of time a handler has to fully process a request (10s) DefaultWriteTimeout = 10 * time.Second // DefaultIdleTimeout sets the maximum amount of time a Keep-Alive connection can remain idle before // being recycled (120s) DefaultIdleTimeout = 120 * time.Second // DefaultShutdownTimeout sets the maximum amount of time a shutdown DefaultShutdownTimeout = 2 * time.Second )
see https://blog.cloudflare.com/exposing-go-on-the-internet/
Functions ¶
This section is empty.
Types ¶
type Configuration ¶
type Configuration struct {
HTTP *HTTPConfiguration
HTTPS *HTTPSConfiguration
ShutdownTimeout time.Duration
WriteTimeout time.Duration
ReadTimeout time.Duration
ReadHeaderTimeout time.Duration
IdleTimeout time.Duration
Profiling bool
Metrics bool
HealthCheck bool
}
Configuration struct
func ConfigurationWithDefault ¶
func ConfigurationWithDefault(cfg *Configuration) *Configuration
ConfigurationWithDefault return Configuration with default parameters
func (Configuration) IsEnabled ¶
func (c Configuration) IsEnabled(protocol string) bool
IsEnabled check if protocol is enabled
type HTTPConfiguration ¶
HTTPConfiguration struct
func (HTTPConfiguration) IsEnabled ¶
func (c HTTPConfiguration) IsEnabled() bool
IsEnabled check if HTTP is enabled
type HTTPSConfiguration ¶
type HTTPSConfiguration struct {
Host string
Port int
TLSConfig *tls.Config
CertFile string
KeyFile string
}
HTTPSConfiguration struct
func (HTTPSConfiguration) IsEnabled ¶
func (c HTTPSConfiguration) IsEnabled() bool
IsEnabled check if HTTP is enabled
type HealthCheckHandler ¶
type HealthCheckHandler interface {
Check() bool
}
HealthCheckHandler type
type HealthCheckHandlerFunc ¶
type HealthCheckHandlerFunc func() bool
HealthCheckHandlerFunc handler
type HealthCheckResponse ¶
type HealthCheckResponse struct {
Status bool `json:"status"`
Services map[string]bool `json:"services"`
}
HealthCheckResponse struct
type MockHealthCheckHandler ¶
MockHealthCheckHandler is an autogenerated mock type for the HealthCheckHandler type
func (*MockHealthCheckHandler) Check ¶
func (_m *MockHealthCheckHandler) Check() bool
Check provides a mock function with given fields:
type Router ¶
Router struct
func (*Router) AddController ¶
func (r *Router) AddController(controller Controller)
AddController to Router
func (*Router) AddHealthCheck ¶
func (r *Router) AddHealthCheck(name string, handle HealthCheckHandler) error
AddHealthCheck handler
func (*Router) AddPrefixRoute ¶
AddPrefixRoute to Router Deprecated: Use server.PathPrefix(prefix).Handler() instead.
func (*Router) AddPrefixRouteFunc ¶
AddPrefixRouteFunc to Router Deprecated: Use server.PathPrefix(prefix).HandlerFunc() instead.
func (*Router) AddRouteFunc ¶
AddRouteFunc to Router Deprecated: Use server.HandleFunc() instead.
func (*Router) EnableCorsWithOptions ¶
EnableCorsWithOptions for all endpoint
func (*Router) EnableProxy ¶
func (r *Router) EnableProxy()
EnableProxy for populating r.RemoteAddr and r.URL.Scheme based on the X-Forwarded-For, X-Real-IP, X-Forwarded-Proto and RFC7239 Forwarded headers when running a Go server behind a HTTP reverse proxy.
func (*Router) SetNotFoundFunc ¶
func (r *Router) SetNotFoundFunc(handler http.HandlerFunc)
SetNotFoundFunc handler