Documentation
¶
Index ¶
- type Config
- type Option
- func WithBoundCallback(callback func(tcpAddr *net.TCPAddr)) Option
- func WithCommonMiddleware(commonMiddleware ...middleware.Middleware) Option
- func WithConfigProvider(provider func() (*Config, error)) Option
- func WithEndpointHandlers(endpointHandlers ...api.HTTPEndpointHandler) Option
- func WithListenerProvider(provider func(bindIP string, bindPort uint16) (*net.TCPListener, error)) Option
- type Server
- type TLSMode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { // HTTPServerBindIP is the IP address the server listens on. HTTPServerBindIP string `config:"ENV" config_default:"::1" validate:"required,ip_addr"` // HTTPServerBindPort is the port number the server listens on. HTTPServerBindPort uint16 `config:"ENV" config_default:"0" validate:"gte=0"` // HTTPServerReadTimeoutMillis is the maximum time (in milliseconds) to read the request. // Zero or negative means no timeout. HTTPServerReadTimeoutMillis int `config:"ENV" config_default:"120000" validate:"gte=0"` // HTTPServerWriteTimeoutMillis is the maximum time (in milliseconds) to write the response. // Zero or negative means no timeout. HTTPServerWriteTimeoutMillis int `config:"ENV" config_default:"120000" validate:"gte=0"` // HTTPServerIdleTimeoutMillis sets the max idle time (in milliseconds) between requests when keep-alives are enabled. // If zero, ReadTimeout is used. If both are zero, it means no timeout. HTTPServerIdleTimeoutMillis int `config:"ENV" config_default:"0" validate:"gte=0"` // HTTPServerHeaderReadTimeoutMillis is the maximum time (in milliseconds) to read request headers. // If zero, ReadTimeout is used. If both are zero, it means no timeout. HTTPServerHeaderReadTimeoutMillis int `config:"ENV" config_default:"0" validate:"gte=0"` // HTTPServerTLSMode specifies the TLS mode of the server: off, tls, or mutual_tls. HTTPServerTLSMode TLSMode `config:"ENV" config_default:"tls" validate:"oneof=off tls mutual_tls"` // HTTPServerCert is the path to the TLS certificate file. HTTPServerCert string `` /* 135-byte string literal not displayed */ // HTTPServerKey is the path to the TLS private key file. HTTPServerKey string `` /* 135-byte string literal not displayed */ // HTTPServerClientCACerts is a list of paths to client CA certificate files (used in mutual TLS). HTTPServerClientCACerts []string `config:"ENV" config_default:"[]" validate:"required_if=HTTPServerTLSMode mutual_tls,dive,required,filepath"` // HTTPServerMaxHeaderBytes sets the maximum size in bytes of request headers. It doesn't limit the request body size. HTTPServerMaxHeaderBytes int `config:"ENV" config_default:"1048576" validate:"gte=4096,lte=1073741824"` // HTTPServerKeepAlive controls whether HTTP keep-alives are enabled. By default, keep-alives are always enabled. HTTPServerKeepAlive bool `config:"ENV" config_default:"true"` }
Config holds configuration parameters for an HTTP server.
type Option ¶
type Option func(srvOpts *serverOptions)
Option is used to configure the HTTP server.
func WithBoundCallback ¶
WithBoundCallback sets the bound callback for the server. The callback is invoked when the network listener is bound to the configured IP and port.
func WithCommonMiddleware ¶
func WithCommonMiddleware(commonMiddleware ...middleware.Middleware) Option
WithCommonMiddleware adds common middleware for the server. The middleware gets executed on every request to the server.
func WithConfigProvider ¶
WithConfigProvider sets the provider for the config.Config.
func WithEndpointHandlers ¶
func WithEndpointHandlers(endpointHandlers ...api.HTTPEndpointHandler) Option
WithEndpointHandlers adds the handlers to the server.
func WithListenerProvider ¶
func WithListenerProvider(provider func(bindIP string, bindPort uint16) (*net.TCPListener, error)) Option
WithListenerProvider sets the provider for the tcp.Listener.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server handles requests via the Hypertext Transfer Protocol (HTTP) and sends back responses. The Server must be allocated using New since the zero value for Server is not valid configuration.