Documentation
¶
Overview ¶
nolint:,staticcheck,ineffassign
Index ¶
- Constants
- func AddLog(w WebFramework, title string, log slog.Attr)
- func AddLogTag(w WebFramework, title string, log slog.Attr)
- func AddServiceRegistrationLog(name string)
- func AddStartUpLog(log slog.Attr)
- func AddStartUpLogTag(title string, log slog.Attr)
- func CollectLogArrays(w WebFramework, title string)
- func CollectLogTags(w WebFramework, title string)
- func CollectServiceRegistrationLogs()
- func CollectStartUpLogs()
- func GetLocalOrDefault[T any](w WebFramework, key string, defaultValue T) T
- type FakeParser
- func (f FakeParser) Abort() error
- func (t FakeParser) AddCustomAttributes(attr slog.Attr)
- func (c FakeParser) AddSpanAttribute(key, value string)
- func (c FakeParser) AddSpanAttributes(attrs map[string]string)
- func (c FakeParser) AddSpanEvent(name string, attrs map[string]string)
- func (f FakeParser) CheckUrlParam(name string) (string, bool)
- func (c FakeParser) FileAttachment(path, fileName string)
- func (c FakeParser) FormValue(name string) string
- func (f FakeParser) GetArgs(args ...any) map[string]string
- func (f FakeParser) GetBody(target any) error
- func (c FakeParser) GetContext() context.Context
- func (f FakeParser) GetHeader(target HeaderInterface) error
- func (f FakeParser) GetHeaderValue(name string) string
- func (f FakeParser) GetHttpHeader() http.Header
- func (f FakeParser) GetLocal(name string) any
- func (f FakeParser) GetLocalString(name string) string
- func (f FakeParser) GetLogger() *slog.Logger
- func (f FakeParser) GetMethod() string
- func (f FakeParser) GetPath() string
- func (f FakeParser) GetRawUrlQuery() string
- func (c FakeParser) GetTraceContext() trace.SpanContext
- func (f FakeParser) GetUri(target any) error
- func (f FakeParser) GetUrlParam(name string) string
- func (f FakeParser) GetUrlParams() map[string]string
- func (f FakeParser) GetUrlQuery(target any) error
- func (f FakeParser) Next() error
- func (f FakeParser) ParseCommand(command, title string, request RecordData, parser FieldParser) string
- func (c FakeParser) RecordSpanError(err error, attrs map[string]string)
- func (c FakeParser) SaveFile(formTagName, path string) error
- func (f FakeParser) SendJSONRespBody(status int, resp any) error
- func (c FakeParser) SetContext(ctx context.Context)
- func (f FakeParser) SetLocal(name string, value any)
- func (f FakeParser) SetReqHeader(name string, value string)
- func (f FakeParser) SetRespHeader(name string, value string)
- func (c FakeParser) SetTraceContext(spanCtx trace.SpanContext)
- func (c FakeParser) StartSpan(name string, opts ...trace.SpanStartOption) (context.Context, trace.Span)
- type FieldParser
- type HeaderInterface
- type RecordData
- type RequestHandler
- type RequestParser
- type TransactionInfo
- type TransactionLogger
- type WebFramework
- func (w *WebFramework) AddSpanAttribute(key, value string)
- func (w *WebFramework) AddSpanAttributes(attrs map[string]string)
- func (w *WebFramework) AddSpanEvent(name string, attrs map[string]string)
- func (w *WebFramework) GetTraceContext() trace.SpanContext
- func (w *WebFramework) RecordSpanError(err error, attrs map[string]string)
- func (w *WebFramework) SetSpan(span trace.Span)
- func (w *WebFramework) StartSpan(name string, opts ...trace.SpanStartOption) (context.Context, trace.Span)
Constants ¶
const ( LogTagNameFormat string = "LOG_TAG_%s" LogArrayNameFormat string = "LOG_ARRAY_%s" HandlerLogTag string = "handler" ErrorListLogTag string = "errors" )
const TransactionLoggerLocalKey = "transaction_logger"
TransactionLoggerLocalKey is the per-request local-storage key used to register a TransactionLogger for the duration of a request. Set it via w.Parser.SetLocal(webFramework.TransactionLoggerLocalKey, logger).
Variables ¶
This section is empty.
Functions ¶
func AddServiceRegistrationLog ¶ added in v0.13.13
func AddServiceRegistrationLog(name string)
func AddStartUpLog ¶ added in v0.13.13
func AddStartUpLogTag ¶ added in v0.13.13
func CollectLogArrays ¶ added in v0.13.10
func CollectLogArrays(w WebFramework, title string)
func CollectLogTags ¶ added in v0.13.10
func CollectLogTags(w WebFramework, title string)
func CollectServiceRegistrationLogs ¶ added in v0.13.13
func CollectServiceRegistrationLogs()
func CollectStartUpLogs ¶ added in v0.13.13
func CollectStartUpLogs()
func GetLocalOrDefault ¶ added in v0.27.0
func GetLocalOrDefault[T any](w WebFramework, key string, defaultValue T) T
GetLocalOrDefault retrieves a parser-local value by key. It returns defaultValue when w.Parser is nil, the local is absent, or the stored value is not of type T.
GetLocalOrDefault is read-only: it never mutates parser locals and never registers package-level state. It is safe for concurrent use as long as the underlying RequestParser implementation is safe for concurrent reads.
Types ¶
type FakeParser ¶ added in v0.9.49
type FakeParser struct {
Method string
Path string
Header HeaderInterface
HttpHeader http.Header
ReqHeader map[string]string
RespHeader map[string]string
Body any
Uri any
UrlQuery any
RawUrlQuery string
Locals map[string]any
Args map[string]string
Urlparams map[string]string
JsonResp any
}
func (FakeParser) Abort ¶ added in v0.9.49
func (f FakeParser) Abort() error
func (FakeParser) AddCustomAttributes ¶ added in v0.13.2
func (t FakeParser) AddCustomAttributes(attr slog.Attr)
func (FakeParser) AddSpanAttribute ¶ added in v0.18.0
func (c FakeParser) AddSpanAttribute(key, value string)
func (FakeParser) AddSpanAttributes ¶ added in v0.18.0
func (c FakeParser) AddSpanAttributes(attrs map[string]string)
func (FakeParser) AddSpanEvent ¶ added in v0.18.0
func (c FakeParser) AddSpanEvent(name string, attrs map[string]string)
func (FakeParser) CheckUrlParam ¶ added in v0.9.49
func (f FakeParser) CheckUrlParam(name string) (string, bool)
func (FakeParser) FileAttachment ¶ added in v0.10.4
func (c FakeParser) FileAttachment(path, fileName string)
func (FakeParser) FormValue ¶ added in v0.10.1
func (c FakeParser) FormValue(name string) string
func (FakeParser) GetArgs ¶ added in v0.9.49
func (f FakeParser) GetArgs(args ...any) map[string]string
func (FakeParser) GetBody ¶ added in v0.9.49
func (f FakeParser) GetBody(target any) error
func (FakeParser) GetContext ¶ added in v0.22.0
func (c FakeParser) GetContext() context.Context
GetContext returns a background context for testing
func (FakeParser) GetHeader ¶ added in v0.9.49
func (f FakeParser) GetHeader(target HeaderInterface) error
func (FakeParser) GetHeaderValue ¶ added in v0.9.49
func (f FakeParser) GetHeaderValue(name string) string
func (FakeParser) GetHttpHeader ¶ added in v0.9.49
func (f FakeParser) GetHttpHeader() http.Header
func (FakeParser) GetLocal ¶ added in v0.9.49
func (f FakeParser) GetLocal(name string) any
func (FakeParser) GetLocalString ¶ added in v0.9.49
func (f FakeParser) GetLocalString(name string) string
func (FakeParser) GetLogger ¶ added in v0.13.1
func (f FakeParser) GetLogger() *slog.Logger
func (FakeParser) GetMethod ¶ added in v0.9.49
func (f FakeParser) GetMethod() string
func (FakeParser) GetPath ¶ added in v0.9.49
func (f FakeParser) GetPath() string
func (FakeParser) GetRawUrlQuery ¶ added in v0.9.49
func (f FakeParser) GetRawUrlQuery() string
func (FakeParser) GetTraceContext ¶ added in v0.18.0
func (c FakeParser) GetTraceContext() trace.SpanContext
Tracing methods for TestingParser
func (FakeParser) GetUri ¶ added in v0.9.49
func (f FakeParser) GetUri(target any) error
func (FakeParser) GetUrlParam ¶ added in v0.9.49
func (f FakeParser) GetUrlParam(name string) string
func (FakeParser) GetUrlParams ¶ added in v0.9.49
func (f FakeParser) GetUrlParams() map[string]string
func (FakeParser) GetUrlQuery ¶ added in v0.9.49
func (f FakeParser) GetUrlQuery(target any) error
func (FakeParser) Next ¶ added in v0.9.49
func (f FakeParser) Next() error
func (FakeParser) ParseCommand ¶ added in v0.9.49
func (f FakeParser) ParseCommand(command, title string, request RecordData, parser FieldParser) string
func (FakeParser) RecordSpanError ¶ added in v0.18.0
func (c FakeParser) RecordSpanError(err error, attrs map[string]string)
func (FakeParser) SaveFile ¶ added in v0.10.1
func (c FakeParser) SaveFile( formTagName, path string, ) error
func (FakeParser) SendJSONRespBody ¶ added in v0.9.49
func (f FakeParser) SendJSONRespBody(status int, resp any) error
func (FakeParser) SetContext ¶ added in v0.22.0
func (c FakeParser) SetContext(ctx context.Context)
SetContext is a no-op for testing
func (FakeParser) SetLocal ¶ added in v0.9.49
func (f FakeParser) SetLocal(name string, value any)
func (FakeParser) SetReqHeader ¶ added in v0.9.49
func (f FakeParser) SetReqHeader(name string, value string)
func (FakeParser) SetRespHeader ¶ added in v0.10.28
func (f FakeParser) SetRespHeader(name string, value string)
func (FakeParser) SetTraceContext ¶ added in v0.18.0
func (c FakeParser) SetTraceContext(spanCtx trace.SpanContext)
func (FakeParser) StartSpan ¶ added in v0.18.0
func (c FakeParser) StartSpan(name string, opts ...trace.SpanStartOption) (context.Context, trace.Span)
type FieldParser ¶ added in v0.7.1
type HeaderInterface ¶ added in v0.8.4
type RecordData ¶ added in v0.7.1
type RequestHandler ¶
type RequestParser ¶
type RequestParser interface {
GetMethod() string
GetPath() string
GetHeader(target HeaderInterface) error
GetHeaderValue(name string) string
GetHttpHeader() http.Header
GetBody(target any) error
GetUri(target any) error
GetUrlQuery(target any) error
GetRawUrlQuery() string
GetLocal(name string) any
GetLocalString(name string) string
GetUrlParam(name string) string
GetUrlParams() map[string]string
CheckUrlParam(name string) (string, bool)
SetLocal(name string, value any)
SetReqHeader(name string, value string)
SetRespHeader(name string, value string)
GetArgs(args ...any) map[string]string
ParseCommand(command, title string, request RecordData, parser FieldParser) string
SendJSONRespBody(status int, resp any) error
Next() error
Abort() error
FormValue(name string) string
SaveFile(formTagName, path string) error
FileAttachment(path, fileName string)
AddCustomAttributes(attr slog.Attr)
// Tracing methods
GetTraceContext() trace.SpanContext
SetTraceContext(spanCtx trace.SpanContext)
StartSpan(name string, opts ...trace.SpanStartOption) (context.Context, trace.Span)
AddSpanAttribute(key, value string)
AddSpanAttributes(attrs map[string]string)
AddSpanEvent(name string, attrs map[string]string)
RecordSpanError(err error, attrs map[string]string)
// Context management for tracing
GetContext() context.Context
SetContext(context.Context)
}
type TransactionInfo ¶ added in v0.27.0
type TransactionInfo struct {
ServiceName string // param.Api.Name
URL string // full request URL (domain + "/" + path + query)
Endpoint string // param.Path
Method string // param.Method (HTTP method)
StatusCode int // actual HTTP status (0 if request failed before getting a response)
Duration time.Duration // elapsed time
Error error // nil on success
Request any // param.JsonBody (caller may mask sensitive fields via CallApiOptions.MaskFunc)
Response any // parsed response (nil on error; caller may mask via MaskFunc)
ResponseBody []byte // raw response body from RemoteCallError on error, nil on success; preserved raw for diagnostics — may contain sensitive data
MaskedResponseBody any // MaskFunc(ResponseBody) on error paths when CallApiOptions.MaskFunc is set; nil when MaskFunc is nil or on success. Transaction loggers should emit this field by default and use ResponseBody only when the raw bytes are explicitly required.
}
TransactionInfo is the canonical generic payload describing a completed remote API call. It is used by TransactionLogger and CallApiOptions.OnComplete.
type TransactionLogger ¶ added in v0.27.0
type TransactionLogger interface {
LogTransaction(info TransactionInfo)
}
TransactionLogger is a framework-level interface for recording transaction logs after remote API calls. Register an implementation via w.Parser.SetLocal(TransactionLoggerLocalKey, logger) during request initialization. CallApiJSONWithOpts resolves and invokes it unconditionally on every code path (success, error, timeout) in addition to webFramework.AddLog.
type WebFramework ¶
type WebFramework struct {
Ctx context.Context
Span trace.Span
//Handler response.ResponseHandler
Parser RequestParser
}
func (*WebFramework) AddSpanAttribute ¶ added in v0.18.0
func (w *WebFramework) AddSpanAttribute(key, value string)
func (*WebFramework) AddSpanAttributes ¶ added in v0.18.0
func (w *WebFramework) AddSpanAttributes(attrs map[string]string)
func (*WebFramework) AddSpanEvent ¶ added in v0.18.0
func (w *WebFramework) AddSpanEvent(name string, attrs map[string]string)
func (*WebFramework) GetTraceContext ¶ added in v0.18.0
func (w *WebFramework) GetTraceContext() trace.SpanContext
Tracing methods for WebFramework
func (*WebFramework) RecordSpanError ¶ added in v0.18.0
func (w *WebFramework) RecordSpanError(err error, attrs map[string]string)
func (*WebFramework) SetSpan ¶ added in v0.18.0
func (w *WebFramework) SetSpan(span trace.Span)
func (*WebFramework) StartSpan ¶ added in v0.18.0
func (w *WebFramework) StartSpan(name string, opts ...trace.SpanStartOption) (context.Context, trace.Span)