endpoint

package
v0.8.2-alpha Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2023 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeAuthenticationStrategyHookFunc

func DecodeAuthenticationStrategyHookFunc() mapstructure.DecodeHookFunc

func DecodeEndpointHookFunc

func DecodeEndpointHookFunc() mapstructure.DecodeHookFunc

Types

type APIKeyStrategy

type APIKeyStrategy struct {
	In    string `mapstructure:"in"`
	Name  string `mapstructure:"name"`
	Value string `mapstructure:"value"`
}

func (*APIKeyStrategy) Apply

func (c *APIKeyStrategy) Apply(_ context.Context, req *http.Request) error

func (*APIKeyStrategy) Hash

func (c *APIKeyStrategy) Hash() []byte

type AuthenticationStrategy

type AuthenticationStrategy interface {
	Apply(context.Context, *http.Request) error
	Hash() []byte
}

type BasicAuthStrategy

type BasicAuthStrategy struct {
	User     string `mapstructure:"user"`
	Password string `mapstructure:"password"`
}

func (*BasicAuthStrategy) Apply

func (c *BasicAuthStrategy) Apply(_ context.Context, req *http.Request) error

func (*BasicAuthStrategy) Hash

func (c *BasicAuthStrategy) Hash() []byte

type ClientCredentialsStrategy

type ClientCredentialsStrategy struct {
	ClientID     string   `mapstructure:"client_id"`
	ClientSecret string   `mapstructure:"client_secret"`
	Scopes       []string `mapstructure:"scopes"`
	TokenURL     string   `mapstructure:"token_url"`
}

func (*ClientCredentialsStrategy) Apply

func (*ClientCredentialsStrategy) Hash

func (c *ClientCredentialsStrategy) Hash() []byte

type Endpoint

type Endpoint struct {
	URL              string                 `mapstructure:"url"`
	Method           string                 `mapstructure:"method"`
	Retry            *Retry                 `mapstructure:"retry"`
	AuthStrategy     AuthenticationStrategy `mapstructure:"auth"`
	Headers          map[string]string      `mapstructure:"headers"`
	HTTPCacheEnabled *bool                  `mapstructure:"enable_http_cache"`
	Values           Values                 `mapstructure:"values"`
}

func (Endpoint) CreateClient

func (e Endpoint) CreateClient(peerName string) *http.Client

func (Endpoint) CreateRequest

func (e Endpoint) CreateRequest(ctx context.Context, body io.Reader, rndr Renderer) (*http.Request, error)

func (Endpoint) Hash

func (e Endpoint) Hash() []byte

func (Endpoint) SendRequest

func (e Endpoint) SendRequest(ctx context.Context, body io.Reader, renderer Renderer) ([]byte, error)

func (Endpoint) Validate

func (e Endpoint) Validate() error

type RenderFunc

type RenderFunc func(template string, values map[string]string) (string, error)

func (RenderFunc) Render

func (f RenderFunc) Render(template string, values map[string]string) (string, error)

type Renderer

type Renderer interface {
	Render(template string, values map[string]string) (string, error)
}

type Retry

type Retry struct {
	GiveUpAfter time.Duration `mapstructure:"give_up_after"`
	MaxDelay    time.Duration `mapstructure:"max_delay"`
}

type Values

type Values map[string]string

func (Values) Merge

func (v Values) Merge(other Values) Values

Jump to

Keyboard shortcuts

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