Documentation
¶
Index ¶
- Constants
- func AsNetHTTPHost(h *Host) *internal.NetHTTPHost
- func ConfigureConfiguration(configurator ConfigurationServiceConfigurator)
- func CreateHost() *internal.NetHTTPHost
- func UseCorsHeader(headers ...string) host.Middleware
- func UseErrorHandler(handler ErrorHandler) host.Middleware
- func UseLogging(services ...LoggingService) host.Middleware
- func UseRequestManager(requestManager any) host.Middleware
- func UseTracing(options ...TracingOption) host.Middleware
- type ConfigurationServiceConfigurator
- type ErrorHandler
- type EventEvidence
- type EventLog
- type HTTPStarter
- type Host
- type LoggingService
- type Middleware
- type Request
- type RequestCtx
- type RequestHandler
- type RequestWorker
- type ResponseWriter
- type RewriteHandler
- type RoutePath
- type Server
- type TracingOption
Constants ¶
const ( StatusContinue = 100 // RFC 7231, 6.2.1 StatusSwitchingProtocols = 101 // RFC 7231, 6.2.2 StatusProcessing = 102 // RFC 2518, 10.1 StatusEarlyHints = 103 // RFC 8297 StatusOK = 200 // RFC 7231, 6.3.1 StatusCreated = 201 // RFC 7231, 6.3.2 StatusAccepted = 202 // RFC 7231, 6.3.3 StatusNonAuthoritativeInfo = 203 // RFC 7231, 6.3.4 StatusNoContent = 204 // RFC 7231, 6.3.5 StatusResetContent = 205 // RFC 7231, 6.3.6 StatusPartialContent = 206 // RFC 7233, 4.1 StatusMultiStatus = 207 // RFC 4918, 11.1 StatusAlreadyReported = 208 // RFC 5842, 7.1 StatusIMUsed = 226 // RFC 3229, 10.4.1 StatusMultipleChoices = 300 // RFC 7231, 6.4.1 StatusMovedPermanently = 301 // RFC 7231, 6.4.2 StatusFound = 302 // RFC 7231, 6.4.3 StatusSeeOther = 303 // RFC 7231, 6.4.4 StatusNotModified = 304 // RFC 7232, 4.1 StatusUseProxy = 305 // RFC 7231, 6.4.5 StatusTemporaryRedirect = 307 // RFC 7231, 6.4.7 StatusPermanentRedirect = 308 // RFC 7538, 3 StatusBadRequest = 400 // RFC 7231, 6.5.1 StatusPaymentRequired = 402 // RFC 7231, 6.5.2 StatusForbidden = 403 // RFC 7231, 6.5.3 StatusNotFound = 404 // RFC 7231, 6.5.4 StatusMethodNotAllowed = 405 // RFC 7231, 6.5.5 StatusNotAcceptable = 406 // RFC 7231, 6.5.6 StatusProxyAuthRequired = 407 // RFC 7235, 3.2 StatusRequestTimeout = 408 // RFC 7231, 6.5.7 StatusConflict = 409 // RFC 7231, 6.5.8 StatusGone = 410 // RFC 7231, 6.5.9 StatusLengthRequired = 411 // RFC 7231, 6.5.10 StatusPreconditionFailed = 412 // RFC 7232, 4.2 StatusRequestEntityTooLarge = 413 // RFC 7231, 6.5.11 StatusRequestURITooLong = 414 // RFC 7231, 6.5.12 StatusUnsupportedMediaType = 415 // RFC 7231, 6.5.13 StatusRequestedRangeNotSatisfiable = 416 // RFC 7233, 4.4 StatusExpectationFailed = 417 // RFC 7231, 6.5.14 StatusTeapot = 418 // RFC 7168, 2.3.3 StatusMisdirectedRequest = 421 // RFC 7540, 9.1.2 StatusUnprocessableEntity = 422 // RFC 4918, 11.2 StatusLocked = 423 // RFC 4918, 11.3 StatusFailedDependency = 424 // RFC 4918, 11.4 StatusUpgradeRequired = 426 // RFC 7231, 6.5.15 StatusPreconditionRequired = 428 // RFC 6585, 3 StatusTooManyRequests = 429 // RFC 6585, 4 StatusRequestHeaderFieldsTooLarge = 431 // RFC 6585, 5 StatusInternalServerError = 500 // RFC 7231, 6.6.1 StatusNotImplemented = 501 // RFC 7231, 6.6.2 StatusBadGateway = 502 // RFC 7231, 6.6.3 StatusGatewayTimeout = 504 // RFC 7231, 6.6.5 StatusHTTPVersionNotSupported = 505 // RFC 7231, 6.6.6 StatusVariantAlsoNegotiates = 506 // RFC 2295, 8.1 StatusInsufficientStorage = 507 // RFC 4918, 11.5 StatusLoopDetected = 508 // RFC 5842, 7.2 StatusNotExtended = 510 // RFC 2774, 7 StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6 )
HTTP status codes from net/http standard library.
Variables ¶
This section is empty.
Functions ¶
func AsNetHTTPHost ¶
func AsNetHTTPHost(h *Host) *internal.NetHTTPHost
AsNetHTTPHost converts host.Host to NetHTTPHost for configuration.
func ConfigureConfiguration ¶
func ConfigureConfiguration(configurator ConfigurationServiceConfigurator)
ConfigureConfiguration configures the configuration management service. Called by host.Starter to set up configuration loading.
func CreateHost ¶
func CreateHost() *internal.NetHTTPHost
CreateHost creates a NetHTTPHost instance.
func UseCorsHeader ¶
func UseCorsHeader(headers ...string) host.Middleware
UseCorsHeader creates CORS handling middleware with optional custom headers. Enables cross-origin requests and adds specified headers to allowed list.
func UseErrorHandler ¶
func UseErrorHandler(handler ErrorHandler) host.Middleware
UseErrorHandler creates error handling middleware with custom handler. The handler processes panics and errors during request processing.
func UseLogging ¶
func UseLogging(services ...LoggingService) host.Middleware
UseLogging creates logging middleware with optional services. If no services provided, uses no-op logging. Multiple services are composed together.
func UseRequestManager ¶
func UseRequestManager(requestManager any) host.Middleware
UseRequestManager creates request routing middleware with request manager. The manager handles automatic routing based on struct methods and tags.
func UseTracing ¶
func UseTracing(options ...TracingOption) host.Middleware
UseTracing creates comprehensive tracing middleware with OpenTelemetry and slog fallback. Automatically traces HTTP requests with configurable options for skipping certain paths/methods.
Types ¶
type ConfigurationServiceConfigurator ¶
type ConfigurationServiceConfigurator func(service *config.ConfigurationService)
ConfigurationServiceConfigurator is the configuration service configurator function type.
type HTTPStarter ¶
HTTPStarter wraps host.Starter to provide access to NetHTTPHost
func Startup ¶
func Startup(app any) *HTTPStarter
Startup creates a host.Starter with NetHttpHost module configured. This is the main entry point for starting HTTP applications.
func (*HTTPStarter) GetRequestWorker ¶
func (s *HTTPStarter) GetRequestWorker() *internal.RequestWorker
GetRequestWorker returns the RequestWorker for advanced middleware configuration
type Middleware ¶
type Middleware interface {
Invoke(w http.ResponseWriter, r *http.Request, next func(http.ResponseWriter, *http.Request))
}
Middleware interface for use with RequestWorker
type RequestWorker ¶
type RequestWorker struct {
*internal.RequestWorker
}
RequestWorker provides a public interface to the internal RequestWorker
func NewRequestWorker ¶
func NewRequestWorker() *RequestWorker
NewRequestWorker creates a new RequestWorker for direct use
func (*RequestWorker) AddMiddleware ¶
func (w *RequestWorker) AddMiddleware(middleware Middleware)
AddMiddleware adds a regular middleware that executes after routing
func (*RequestWorker) AddPreMiddleware ¶
func (w *RequestWorker) AddPreMiddleware(middleware Middleware)
AddPreMiddleware adds a pre-middleware that executes before routing
func (*RequestWorker) AddRoute ¶
func (w *RequestWorker) AddRoute( method, path string, handler func(http.ResponseWriter, *http.Request), componentID string, )
AddRoute adds a route to the worker
type TracingOption ¶
type TracingOption func(*middleware.TracingMiddleware)
TracingOption allows customization of tracing middleware behavior
func WithCORSMerging ¶
func WithCORSMerging(enable bool) TracingOption
WithCORSMerging enables or disables merging of CORS preflight traces with actual requests
func WithSkipMethods ¶
func WithSkipMethods(methods ...string) TracingOption
WithSkipMethods configures HTTP methods to skip during tracing
func WithSkipPaths ¶
func WithSkipPaths(paths ...string) TracingOption
WithSkipPaths configures paths to skip during tracing (e.g., health checks)
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
_examples
|
|
|
basic/health-check
command
|
|
|
basic/hello-world
command
|
|
|
basic/json-api
command
|
|
|
basic/middleware-chain
command
|
|
|
basic/pprof-profiling
command
|
|
|
basic/tracing-example
command
|
|