Documentation
¶
Index ¶
Constants ¶
View Source
const ( ContextKeyRequestInfo = common.ContextKeyAPIRequestInfo ContextKeyResponseInfo = common.ContextKeyAPIResponseInfo ContextKeyError = common.ContextKeyAPIError ContextKeyCredential = common.ContextKeyCredential ContextKeySession = common.ContextKeySession ContextKeyTrace = common.ContextKeyTrace ContextKeyDB = common.ContextKeyDB ContextKeyLogger = common.ContextKeyLogger CookiesKeySession = "JSESSIONID" HeaderKeyTrace = "X-TRACE-ID" HeaderKeyFile = "X-FILE-ID" HeaderKeyJob = "X-JOB-ID" HeaderKeySession = "X-SESSION-ID" HeaderKeyAPIToken = "X-API-KEY" HeaderKeyAgentID = "X-AGENT-ID" HeaderKeyClientCert = "X-Ssl-Certificate" // from nginx proxy_set_header $ssl_client_escaped_cert HeaderKeyClientVerify = "X-Ssl-Certificate-Verify" // from nginx proxy_set_header $ssl_client_verify QueryParamSession = "sid" QueryParamJob = "job" LabelKeySession = "session" LabelKeyNamespace = "organization" LabelKeyUsername = "username" )
View Source
const ( MethodAny = "ANY" MethodWS = "WS" )
View Source
const ErrorSourceUnknown = "Unknown"
Variables ¶
This section is empty.
Functions ¶
func StatusCode ¶
Types ¶
type ClientTLS ¶
type ClientTLS struct {
CertBundle certutil.CertBundle
AuthType tls.ClientAuthType
}
type Endpoint ¶
func NewEndpoint ¶
type ErrorBody ¶
type ErrorBody struct {
Origin error `json:"-"` // keep the original error to trace the stack
Source string `json:"source,omitempty"` // source
Status int `json:"status,omitempty"` // http status code
Code string `json:"code,omitempty"` // customized error code
Kind string `json:"kind,omitempty"` // error category
Message string `json:"message,omitempty"`
Details labels.Set `json:"details,omitempty"`
}
type Middleware ¶
type Middleware interface {
common.Service
// Func returns the middleware function for one attachment point.
//
// enabled is the resolved switch for the attachment: booleans written
// under the middleware's name are switches, not config, and the most
// specific one wins - a handler entry over its group's over the server's
// mapping. With no boolean anywhere, a route attachment is enabled by
// the router.yaml entry's presence, and a server-level attachment
// (WithMiddlewares) is enabled by its entry in the server's middleware
// configs - no entry leaves it dormant. The standard first line is
// `if !enabled { return nil, nil }`.
//
// config is the most specific non-boolean YAML written under the
// middleware's name, nil when there is none - config and switch resolve
// independently, so a handler's `true` can re-enable an attachment while
// still inheriting the group's block. Called once per attachment at
// registration time - and again on restart, when routes are rebuilt - so
// per-route state lives in the returned closure. An error fails
// registration; returning no function and no error declines the
// attachment, and the server skips it.
Func(enabled bool, config []byte) (func(echo.HandlerFunc) echo.HandlerFunc, error)
}
Middleware is one of the two extension points of the API server, the mirror image of Router: where a Router supplies its configuration to the framework, a Middleware receives configuration from it.
type RequestInfo ¶
type RequestInfo struct {
Server string
URI string
Method string
Path string
RawPath string
TraceID string
IP string
StartedAt time.Time
Permission string
Poll bool
}
RequestInfo is what the server's Info middleware resolves onto the request context for everything downstream. Route metadata declared in router.yaml - the permission, the poll flag - arrives flattened here; the parsed schema itself never leaves the server package.
type ResponseInfo ¶
type ServerTLS ¶
type ServerTLS struct {
CertBundle certutil.CertBundle
AuthEnabled bool
}
type Stats ¶
type Stats struct {
RequestInfo
ResponseInfo
}
Click to show internal directories.
Click to hide internal directories.