connection

package
v2.0.0-...-c2f92db Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2021 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ApplicationJSON = "application/json"
)
View Source
const (
	ApplicationVPack = "application/x-velocypack"
)
View Source
const (
	ContentType = "content-type"
)

Variables

This section is empty.

Functions

func IsCodeError

func IsCodeError(err error, code int) bool

func IsNotFoundError

func IsNotFoundError(err error) bool

func NewError

func NewError(code int, message string) error

func NewErrorf

func NewErrorf(code int, message string, args ...interface{}) error

func NewHTTP2DialForEndpoint

func NewHTTP2DialForEndpoint(e Endpoint) func(network, addr string, cfg *tls.Config) (net.Conn, error)

func NewNotFoundError

func NewNotFoundError(msg string) error

func NewUrl

func NewUrl(parts ...string) string

Types

type Array

type Array struct {
	// contains filtered or unexported fields
}

func (*Array) More

func (a *Array) More() bool

func (*Array) Unmarshal

func (a *Array) Unmarshal(i interface{}) error

func (*Array) UnmarshalJSON

func (a *Array) UnmarshalJSON(d []byte) error

type Authentication

type Authentication interface {
	RequestModifier(r Request) error
}

func NewBasicAuth

func NewBasicAuth(username, password string) Authentication

type AuthenticationGetter

type AuthenticationGetter func(ctx context.Context, conn Connection) (Authentication, error)

type Connection

type Connection interface {
	NewRequest(method string, urls ...string) (Request, error)
	NewRequestWithEndpoint(endpoint string, method string, urls ...string) (Request, error)

	Do(ctx context.Context, request Request, output interface{}) (Response, error)

	GetEndpoint() Endpoint
	SetEndpoint(e Endpoint) error

	GetAuthentication() Authentication
	SetAuthentication(a Authentication) error

	Decoder(contentType string) Decoder
}

func NewHttp2Connection

func NewHttp2Connection(config Http2Configuration) Connection

func NewHttpConnection

func NewHttpConnection(config HttpConfiguration) Connection

func NewRetryWrapper

func NewRetryWrapper(conn Connection, retries int, wrapper RetryWrapper) Connection

func RetryOn503

func RetryOn503(conn Connection, retries int) Connection

type Decoder

type Decoder interface {
	Decode(reader io.Reader, obj interface{}) error
	Encode(writer io.Writer, obj interface{}) error
	Reencode(in, out interface{}) error
}

type Endpoint

type Endpoint interface {
	// Get return one of endpoints if is valid, if no default one is returned
	Get(endpoints ...string) (string, bool)

	List() []string
}

func NewEndpoints

func NewEndpoints(e ...string) Endpoint

type Error

type Error struct {
	Code    int
	Message string
}

func (Error) Error

func (e Error) Error() string

type Http2Configuration

type Http2Configuration struct {
	Authentication Authentication
	Endpoint       Endpoint

	ContentType string

	Transport *http2.Transport
}

func (Http2Configuration) GetContentType

func (h Http2Configuration) GetContentType() string

type HttpConfiguration

type HttpConfiguration struct {
	Authentication Authentication
	Endpoint       Endpoint

	ContentType string

	Transport http.RoundTripper
}

func (HttpConfiguration) GetContentType

func (h HttpConfiguration) GetContentType() string

type Request

type Request interface {
	Method() string
	URL() string

	Endpoint() string

	SetBody(i interface{}) error
	AddHeader(key, value string)
	AddQuery(key, value string)

	GetHeader(key string) (string, bool)
	GetQuery(key string) (string, bool)

	SetFragment(s string)
}

type RequestModifier

type RequestModifier func(r Request) error

func WithBody

func WithBody(i interface{}) RequestModifier

func WithFragment

func WithFragment(s string) RequestModifier

func WithQuery

func WithQuery(s, value string) RequestModifier

func WithTransactionID

func WithTransactionID(transactionID string) RequestModifier

type Response

type Response interface {
	Code() int
	Response() interface{}
	Endpoint() string
	Content() string
}

func Call

func Call(ctx context.Context, c Connection, method, url string, output interface{}, modifiers ...RequestModifier) (Response, error)

func CallDelete

func CallDelete(ctx context.Context, c Connection, url string, output interface{}, modifiers ...RequestModifier) (Response, error)

func CallGet

func CallGet(ctx context.Context, c Connection, url string, output interface{}, modifiers ...RequestModifier) (Response, error)

func CallHead

func CallHead(ctx context.Context, c Connection, url string, output interface{}, modifiers ...RequestModifier) (Response, error)

func CallPatch

func CallPatch(ctx context.Context, c Connection, url string, output interface{}, body interface{}, modifiers ...RequestModifier) (Response, error)

func CallPost

func CallPost(ctx context.Context, c Connection, url string, output interface{}, body interface{}, modifiers ...RequestModifier) (Response, error)

func CallPut

func CallPut(ctx context.Context, c Connection, url string, output interface{}, body interface{}, modifiers ...RequestModifier) (Response, error)

type RetryWrapper

type RetryWrapper func(response Response, err error) bool

type Wrapper

type Wrapper func(c Connection) Connection

func NewJWTAuthWrapper

func NewJWTAuthWrapper(username, password string) Wrapper

func WrapAuthentication

func WrapAuthentication(getter AuthenticationGetter) Wrapper

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL