Documentation
¶
Index ¶
- Variables
- type CompressionLevel
- type Dialer
- type Error
- type Header
- type OnConnectHandler
- type Option
- func DumpTo(w io.Writer) Option
- func Name(name string) Option
- func Secure() Option
- func SkipTLSVerify() Option
- func WithDialTimeout(timeout time.Duration) Option
- func WithHTTPProxy(proxyURL string, timeout time.Duration) Option
- func WithLogger(l kit.Logger) Option
- func WithReadTimeout(timeout time.Duration) Option
- func WithSocksProxy(proxyURL string) Option
- func WithTracePropagator(tp kit.TracePropagator) Option
- func WithWriteTimeout(timeout time.Duration) Option
- type PreDialHandler
- type RESTCtx
- func (hc *RESTCtx) AppendQuery(key, value string) *RESTCtx
- func (hc *RESTCtx) AutoRun(ctx context.Context, route string, enc kit.Encoding, m kit.Message) *RESTCtx
- func (hc *RESTCtx) CopyBody(dst []byte) []byte
- func (hc *RESTCtx) DefaultResponseHandler(h RESTResponseHandler) *RESTCtx
- func (hc *RESTCtx) DumpRequest() string
- func (hc *RESTCtx) DumpRequestTo(w io.Writer) *RESTCtx
- func (hc *RESTCtx) DumpResponse() string
- func (hc *RESTCtx) DumpResponseTo(w io.Writer) *RESTCtx
- func (hc *RESTCtx) Err() *Error
- func (hc *RESTCtx) Error() error
- func (hc *RESTCtx) GET(path string) *RESTCtx
- func (hc *RESTCtx) GetBody() []byte
- func (hc *RESTCtx) GetHeader(key string) string
- func (hc *RESTCtx) OPTIONS(path string) *RESTCtx
- func (hc *RESTCtx) PATCH(path string) *RESTCtx
- func (hc *RESTCtx) POST(path string) *RESTCtx
- func (hc *RESTCtx) PUT(path string) *RESTCtx
- func (hc *RESTCtx) ReadResponseBody(w io.Writer) *RESTCtx
- func (hc *RESTCtx) Release()
- func (hc *RESTCtx) Run(ctx context.Context) *RESTCtx
- func (hc *RESTCtx) SetBody(body []byte) *RESTCtx
- func (hc *RESTCtx) SetBodyErr(body []byte, err error) *RESTCtx
- func (hc *RESTCtx) SetHeader(key, value string) *RESTCtx
- func (hc *RESTCtx) SetHeaderMap(kv map[string]string) *RESTCtx
- func (hc *RESTCtx) SetMethod(method string) *RESTCtx
- func (hc *RESTCtx) SetOKHandler(h RESTResponseHandler) *RESTCtx
- func (hc *RESTCtx) SetPath(path string) *RESTCtx
- func (hc *RESTCtx) SetQuery(key, value string) *RESTCtx
- func (hc *RESTCtx) SetQueryMap(kv map[string]string) *RESTCtx
- func (hc *RESTCtx) SetResponseHandler(statusCode int, h RESTResponseHandler) *RESTCtx
- func (hc *RESTCtx) StatusCode() int
- type RESTOption
- type RESTPreflightHandler
- type RESTResponse
- type RESTResponseHandler
- type RPCContainerHandler
- type RPCMessageHandler
- type RPCPreflightHandler
- type Stub
- type WebsocketCtx
- func (wCtx *WebsocketCtx) BinaryMessage(ctx context.Context, predicate string, req, res kit.Message, ...) error
- func (wCtx *WebsocketCtx) Connect(ctx context.Context, path string) error
- func (wCtx *WebsocketCtx) Disconnect() error
- func (wCtx *WebsocketCtx) Do(ctx context.Context, req WebsocketRequest) error
- func (wCtx *WebsocketCtx) NetConn() net.Conn
- func (wCtx *WebsocketCtx) Stats() WebsocketStats
- func (wCtx *WebsocketCtx) TextMessage(ctx context.Context, predicate string, req, res kit.Message, ...) error
- type WebsocketOption
- func WithAutoReconnect(b bool) WebsocketOption
- func WithCompression(c CompressionLevel) WebsocketOption
- func WithConcurrency(n int) WebsocketOption
- func WithCustomDialerBuilder(b func() *websocket.Dialer) WebsocketOption
- func WithCustomRPC(in kit.IncomingRPCFactory, out kit.OutgoingRPCFactory) WebsocketOption
- func WithDefaultHandler(h RPCContainerHandler) WebsocketOption
- func WithHandler(predicate string, h RPCContainerHandler) WebsocketOption
- func WithOnConnectHandler(f OnConnectHandler) WebsocketOption
- func WithPingTime(t time.Duration) WebsocketOption
- func WithPreDialHandler(f PreDialHandler) WebsocketOption
- func WithPredicateKey(key string) WebsocketOption
- func WithPreflightRPC(h ...RPCPreflightHandler) WebsocketOption
- func WithRecoverPanic(f func(err any)) WebsocketOption
- func WithUpgradeHeader(key string, values ...string) WebsocketOption
- type WebsocketRequest
- type WebsocketStats
Constants ¶
This section is empty.
Variables ¶
var (
ErrBadHandshake = websocket.ErrBadHandshake
)
Functions ¶
This section is empty.
Types ¶
type CompressionLevel ¶ added in v0.10.39
type CompressionLevel int
const ( CompressionBestSpeed CompressionLevel = flate.BestSpeed CompressionBestCompression CompressionLevel = flate.BestCompression )
type OnConnectHandler ¶
type OnConnectHandler func(ctx *WebsocketCtx)
type Option ¶
type Option func(cfg *config)
func SkipTLSVerify ¶
func SkipTLSVerify() Option
func WithDialTimeout ¶
func WithHTTPProxy ¶ added in v0.11.26
WithHTTPProxy returns an Option that sets the dialer to the provided HTTP proxy. example formats:
localhost:9050 username:password@localhost:9050 localhost:9050
func WithLogger ¶
func WithReadTimeout ¶
func WithSocksProxy ¶ added in v0.11.26
WithSocksProxy returns an Option that sets the dialer to the provided SOCKS5 proxy. example format: localhost:9050
func WithTracePropagator ¶ added in v0.9.8
func WithTracePropagator(tp kit.TracePropagator) Option
func WithWriteTimeout ¶
type PreDialHandler ¶ added in v0.10.30
type PreDialHandler func(d *Dialer)
type RESTCtx ¶
type RESTCtx struct {
// contains filtered or unexported fields
}
func (*RESTCtx) AppendQuery ¶ added in v0.11.25
func (*RESTCtx) AutoRun ¶
func (hc *RESTCtx) AutoRun( ctx context.Context, route string, enc kit.Encoding, m kit.Message, ) *RESTCtx
AutoRun is a helper method, which fills the request based on the input arguments. It checks the route which is a path pattern, and fills the dynamic url params based on the `m`'s `tag` keys. Example:
type Request struct { ID int64 `json:"id"` Name string `json:"name"` }
AutoRun(
context.Background(), "/something/:id/:name", kit.JSON, &Request{ID: 10, Name: "customName"},
)
Is equivalent to:
SetPath("/something/10/customName"). Run(context.Background())
func (*RESTCtx) CopyBody ¶
CopyBody copies the body to `dst`. It creates a new slice and returns it if dst is nil.
func (*RESTCtx) DefaultResponseHandler ¶
func (hc *RESTCtx) DefaultResponseHandler(h RESTResponseHandler) *RESTCtx
func (*RESTCtx) DumpRequest ¶
func (*RESTCtx) DumpRequestTo ¶
DumpRequestTo accepts a writer and will write the request dump to it when Run is executed.
Please refer to DumpResponseTo
func (*RESTCtx) DumpResponse ¶
func (*RESTCtx) DumpResponseTo ¶
DumpResponseTo accepts a writer and will write the response dump to it when Run is executed. Example:
httpCtx := s.REST(). DumpRequestTo(os.Stdout). DumpResponseTo(os.Stdout). GET("https//google.com"). Run(ctx) defer httpCtx.Release()
**YOU MUST NOT USE httpCtx after httpCtx.Release() is called.**
func (*RESTCtx) GetBody ¶
GetBody returns the body, but please note that the returned slice is only valid until Release is called. If you need to use the body after releasing RESTCtx then use CopyBody method.
func (*RESTCtx) ReadResponseBody ¶ added in v0.11.17
ReadResponseBody reads the response body to the provided writer. It MUST be called after Run or AutoRun.
func (*RESTCtx) Release ¶
func (hc *RESTCtx) Release()
Release frees the allocated internal resources to be re-used. You MUST NOT refer to any method of this object after calling this method, if you call any method after Release has been called, the result is unpredictable.
func (*RESTCtx) SetBodyErr ¶ added in v0.11.17
SetBodyErr is a helper method, which is useful when we want to pass the marshaler function directly without checking the error, before passing it to the SetBody method. example:
restCtx.SetBodyErr(json.Marshal(m))
Is equivalent to:
b, err := json.Marshal(m) if err != nil { // handle err } restCtx.SetBody(b)
func (*RESTCtx) SetHeaderMap ¶ added in v0.11.17
func (*RESTCtx) SetOKHandler ¶ added in v0.10.9
func (hc *RESTCtx) SetOKHandler(h RESTResponseHandler) *RESTCtx
func (*RESTCtx) SetQueryMap ¶ added in v0.11.17
func (*RESTCtx) SetResponseHandler ¶
func (hc *RESTCtx) SetResponseHandler(statusCode int, h RESTResponseHandler) *RESTCtx
func (*RESTCtx) StatusCode ¶
StatusCode returns the status code of the response
type RESTOption ¶
type RESTOption func(cfg *restConfig)
func WithHeader ¶ added in v0.11.5
func WithHeader(key, value string) RESTOption
func WithHeaderMap ¶ added in v0.11.5
func WithHeaderMap(hdr map[string]string) RESTOption
func WithPreflightREST ¶
func WithPreflightREST(h ...RESTPreflightHandler) RESTOption
WithPreflightREST register one or many handlers to run in sequence before actually making requests.
type RESTPreflightHandler ¶
type RESTResponse ¶
type RESTResponseHandler ¶
type RESTResponseHandler func(ctx context.Context, r RESTResponse) *Error
type RPCContainerHandler ¶
type RPCContainerHandler func(ctx context.Context, c kit.IncomingRPCContainer)
type RPCMessageHandler ¶
type RPCPreflightHandler ¶ added in v0.9.5
type RPCPreflightHandler func(req *WebsocketRequest)
type Stub ¶
type Stub struct {
// contains filtered or unexported fields
}
func (*Stub) REST ¶
func (s *Stub) REST(opt ...RESTOption) *RESTCtx
func (*Stub) Websocket ¶
func (s *Stub) Websocket(opts ...WebsocketOption) *WebsocketCtx
type WebsocketCtx ¶
type WebsocketCtx struct {
// contains filtered or unexported fields
}
func (*WebsocketCtx) BinaryMessage ¶
func (wCtx *WebsocketCtx) BinaryMessage( ctx context.Context, predicate string, req, res kit.Message, cb RPCMessageHandler, ) error
func (*WebsocketCtx) Connect ¶
func (wCtx *WebsocketCtx) Connect(ctx context.Context, path string) error
func (*WebsocketCtx) Disconnect ¶
func (wCtx *WebsocketCtx) Disconnect() error
func (*WebsocketCtx) Do ¶ added in v0.9.2
func (wCtx *WebsocketCtx) Do(ctx context.Context, req WebsocketRequest) error
func (*WebsocketCtx) NetConn ¶ added in v0.10.30
func (wCtx *WebsocketCtx) NetConn() net.Conn
NetConn returns the underlying net.Conn, ONLY for advanced use cases
func (*WebsocketCtx) Stats ¶ added in v0.10.40
func (wCtx *WebsocketCtx) Stats() WebsocketStats
func (*WebsocketCtx) TextMessage ¶
func (wCtx *WebsocketCtx) TextMessage( ctx context.Context, predicate string, req, res kit.Message, cb RPCMessageHandler, ) error
type WebsocketOption ¶
type WebsocketOption func(cfg *wsConfig)
func WithAutoReconnect ¶
func WithAutoReconnect(b bool) WebsocketOption
func WithCompression ¶ added in v0.10.39
func WithCompression(c CompressionLevel) WebsocketOption
func WithConcurrency ¶ added in v0.10.15
func WithConcurrency(n int) WebsocketOption
func WithCustomDialerBuilder ¶
func WithCustomDialerBuilder(b func() *websocket.Dialer) WebsocketOption
func WithCustomRPC ¶
func WithCustomRPC(in kit.IncomingRPCFactory, out kit.OutgoingRPCFactory) WebsocketOption
func WithDefaultHandler ¶
func WithDefaultHandler(h RPCContainerHandler) WebsocketOption
func WithHandler ¶
func WithHandler(predicate string, h RPCContainerHandler) WebsocketOption
func WithOnConnectHandler ¶
func WithOnConnectHandler(f OnConnectHandler) WebsocketOption
func WithPingTime ¶
func WithPingTime(t time.Duration) WebsocketOption
func WithPreDialHandler ¶ added in v0.10.30
func WithPreDialHandler(f PreDialHandler) WebsocketOption
func WithPredicateKey ¶
func WithPredicateKey(key string) WebsocketOption
func WithPreflightRPC ¶ added in v0.9.5
func WithPreflightRPC(h ...RPCPreflightHandler) WebsocketOption
WithPreflightRPC register one or many handlers to run in sequence before actually making requests.
func WithRecoverPanic ¶ added in v0.10.16
func WithRecoverPanic(f func(err any)) WebsocketOption
func WithUpgradeHeader ¶
func WithUpgradeHeader(key string, values ...string) WebsocketOption
type WebsocketRequest ¶ added in v0.9.2
type WebsocketRequest struct { // Predicate is the routing key for the message, which will be added to the kit.OutgoingRPCContainer Predicate string // MessageType is the type of the message, either websocket.TextMessage or websocket.BinaryMessage MessageType int ReqMsg kit.Message // ResMsg is the message that will be used to unmarshal the response. // You should pass a pointer to the struct that you want to unmarshal the response into. ResMsg kit.Message // ReqHdr is the headers that will be added to the kit.OutgoingRPCContainer ReqHdr Header // Callback is the callback that will be called when the response is received. // This MUST BE non-nil otherwise it panics. Callback RPCMessageHandler }
type WebsocketStats ¶ added in v0.10.40
type WebsocketStats struct { // ReadBytes is the total number of bytes read from the current websocket connection ReadBytes uint64 // ReadBytesTotal is the total number of bytes read since WebsocketCtx creation ReadBytesTotal uint64 // WriteBytes is the total number of bytes written to the current websocket connection WriteBytes uint64 // WriteBytesTotal is the total number of bytes written since WebsocketCtx creation WriteBytesTotal uint64 }