Documentation
¶
Index ¶
- Constants
- func ApplyOptionSettings(opts *Options, settings map[string]string) error
- type AuthPlacement
- type AuthValue
- type Client
- func (c *Client) BuildHTTPRequest(ctx context.Context, req *restfile.Request, resolver *vars.Resolver, ...) (*http.Request, Options, []byte, error)
- func (c *Client) Clone() *Client
- func (c *Client) CompleteWebSocket(ctx context.Context, handle *WebSocketHandle, req *restfile.Request, ...) (*Response, error)
- func (c *Client) Execute(ctx context.Context, req *restfile.Request, resolver *vars.Resolver, ...) (resp *Response, err error)
- func (c *Client) ExecuteSSE(ctx context.Context, req *restfile.Request, resolver *vars.Resolver, ...) (*Response, error)
- func (c *Client) ExecuteWebSocket(ctx context.Context, req *restfile.Request, resolver *vars.Resolver, ...) (*Response, error)
- func (c *Client) StartSSE(ctx context.Context, req *restfile.Request, resolver *vars.Resolver, ...) (*StreamHandle, *Response, error)
- func (c *Client) StartWebSocket(ctx context.Context, req *restfile.Request, resolver *vars.Resolver, ...) (*WebSocketHandle, *Response, error)
- type ClientOption
- type HTTPClientFactory
- type Options
- type Response
- type SSEEvent
- type SSESummary
- type SSETranscript
- type StreamHandle
- type StreamMeta
- type WebSocketDialer
- type WebSocketEvent
- type WebSocketHandle
- type WebSocketSender
- func (s *WebSocketSender) Close(ctx context.Context, code websocket.StatusCode, reason string, ...) error
- func (s *WebSocketSender) Ping(ctx context.Context, payload string, meta map[string]string) error
- func (s *WebSocketSender) Pong(ctx context.Context, payload string, meta map[string]string) error
- func (s *WebSocketSender) SendBase64(ctx context.Context, data string, meta map[string]string) error
- func (s *WebSocketSender) SendBinary(ctx context.Context, data []byte, meta map[string]string) error
- func (s *WebSocketSender) SendJSON(ctx context.Context, jsonPayload string, meta map[string]string) error
- func (s *WebSocketSender) SendText(ctx context.Context, text string, meta map[string]string) error
- type WebSocketSummary
- type WebSocketTranscript
Constants ¶
const ( StreamHeaderType = "X-Resterm-Stream-Type" StreamHeaderSummary = "X-Resterm-Stream-Summary" )
Resterm adds these headers so streaming results can use the normal response, history, and rendering paths. They do not come from the server.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AuthPlacement ¶
type AuthPlacement int
AuthPlacement identifies where a resolved auth value belongs on the wire.
const ( AuthInHeader AuthPlacement = iota AuthInQuery )
type AuthValue ¶
type AuthValue struct {
Placement AuthPlacement
Name string
Value string
}
func AuthValues ¶
func AuthValues( auth *restfile.AuthSpec, resolver *vars.Resolver, existing http.Header, component diag.Component, ) ([]AuthValue, error)
AuthValues resolves auth without mutating a request. This lets HTTP and gRPC share expansion while the engine still registers the values for redaction. Existing headers are never overwritten.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(fs filelookup.FileSystem) *Client
func NewClientWithOptions ¶
func NewClientWithOptions(opts ...ClientOption) *Client
func (*Client) BuildHTTPRequest ¶
func (c *Client) BuildHTTPRequest( ctx context.Context, req *restfile.Request, resolver *vars.Resolver, opts Options, ) (*http.Request, Options, []byte, error)
BuildHTTPRequest prepares the request with expansions and returns the body bytes for reuse.
func (*Client) Clone ¶
Clone returns a snapshot of c's client configuration. Later field updates on c do not affect the clone.
func (*Client) CompleteWebSocket ¶
func (*Client) Execute ¶
func (c *Client) Execute( ctx context.Context, req *restfile.Request, resolver *vars.Resolver, opts Options, ) (resp *Response, err error)
Wraps the HTTP roundtrip with telemetry spans and network tracing. Trace session hooks into http.Client's transport to capture timing info, while the defer ensures we always report metrics even on failure.
func (*Client) ExecuteSSE ¶
func (*Client) ExecuteWebSocket ¶
type ClientOption ¶
type ClientOption func(*Client)
func WithFileSystem ¶
func WithFileSystem(fs filelookup.FileSystem) ClientOption
func WithHTTPFactory ¶
func WithHTTPFactory(factory HTTPClientFactory) ClientOption
func WithTelemetry ¶
func WithTelemetry(instr telemetry.Instrumenter) ClientOption
func WithWebSocketDialer ¶
func WithWebSocketDialer(dialer WebSocketDialer) ClientOption
type Options ¶
type Options struct {
Timeout time.Duration
FollowRedirects bool
InsecureSkipVerify bool
ProxyURL string
RootCAs []string
RootMode tlsconfig.RootMode
ClientCert string
ClientKey string
HTTPVersion version.HTTP
BaseDir string
FallbackBaseDirs []string
NoFallback bool
Trace bool
TraceBudget *nettrace.Budget
SSH *ssh.Plan
K8s *k8s.Plan
CookieJar http.CookieJar
}
type Response ¶
type Response struct {
Status string
StatusCode int
Proto string
Headers http.Header
ReqMethod string
RequestHeaders http.Header
ReqHost string
ReqLen int64
ReqTE []string
Body []byte
Duration time.Duration
EffectiveURL string
Request *restfile.Request
Timeline *nettrace.Timeline
TraceReport *nettrace.Report
}
func CompleteSSE ¶
func CompleteSSE(handle *StreamHandle) (*Response, error)
func StreamingWebSocketResponse ¶
func StreamingWebSocketResponse(meta StreamMeta) *Response
This temporary response lets the UI show an interactive WebSocket before the session closes and its final transcript is available.
type SSESummary ¶
type SSETranscript ¶
type SSETranscript struct {
Events []SSEEvent `json:"events"`
Summary SSESummary `json:"summary"`
}
func DecodeSSETranscript ¶
func DecodeSSETranscript(data []byte) (*SSETranscript, error)
type StreamHandle ¶
type StreamHandle struct {
Session *stream.Session
Meta StreamMeta
}
type StreamMeta ¶
type WebSocketDialer ¶
type WebSocketEvent ¶
type WebSocketEvent struct {
Step string `json:"step,omitempty"`
Direction string `json:"direction"`
Type string `json:"type"`
Size int `json:"size"`
Text string `json:"text,omitempty"`
Base64 string `json:"base64,omitempty"`
Timestamp time.Time `json:"timestamp"`
Code int `json:"code,omitempty"`
Reason string `json:"reason,omitempty"`
}
type WebSocketHandle ¶
type WebSocketHandle struct {
Session *stream.Session
Meta StreamMeta
Sender *WebSocketSender
}
type WebSocketSender ¶
type WebSocketSender struct {
// contains filtered or unexported fields
}
func (*WebSocketSender) Close ¶
func (s *WebSocketSender) Close( ctx context.Context, code websocket.StatusCode, reason string, meta map[string]string, ) error
func (*WebSocketSender) SendBase64 ¶
func (*WebSocketSender) SendBinary ¶
type WebSocketSummary ¶
type WebSocketTranscript ¶
type WebSocketTranscript struct {
Events []WebSocketEvent `json:"events"`
Summary WebSocketSummary `json:"summary"`
}
func DecodeWebSocketTranscript ¶
func DecodeWebSocketTranscript(data []byte) (*WebSocketTranscript, error)
Source Files
¶
- auth.go
- body.go
- client.go
- fs.go
- options_apply.go
- request.go
- request_build.go
- resp_helpers.go
- stream_headers.go
- stream_helpers.go
- stream_idle.go
- stream_sse.go
- stream_sse_parser.go
- stream_transcript.go
- stream_types.go
- stream_ws.go
- stream_ws_accumulator.go
- stream_ws_runtime.go
- stream_ws_sender.go
- stream_ws_steps.go
- trace.go
- trace_details.go
- transport.go
- version.go
- ws_linkname.go