rest

package
v0.25.1 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2020 License: Apache-2.0 Imports: 24 Imported by: 24

Documentation

Overview

Package rest implements a REST client for communicating with remote services.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Name added in v0.10.1

func Name(s string) func(*Client)

Name returns an option that overrides the service name on the client.

Types

type AccessToken added in v0.25.0

type AccessToken struct {
	AccessToken string `json:"access_token"`
	ExpiresIn   int64  `json:"expires_in"`
	TokenType   string `json:"token_type"`
}

AccessToken holds a GCP access token.

type Client

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

Client implements an HTTP/REST client for communicating with remote services.

func New

func New(config []byte, opts ...func(*Client)) (Client, error)

New returns a new Client for config.

func (Client) Config added in v0.20.0

func (c Client) Config() *Config

Config returns this Client's configuration

func (Client) Do

func (c Client) Do(ctx context.Context, method, path string) (*http.Response, error)

Do executes a request using the client.

func (Client) Service

func (c Client) Service() string

Service returns the name of the service this Client is configured for.

func (Client) WithBytes

func (c Client) WithBytes(body []byte) Client

WithBytes returns a shallow copy of the client with the bytes set as the message body to include in the requests.

func (Client) WithHeader

func (c Client) WithHeader(k, v string) Client

WithHeader returns a shallow copy of the client with a header to include the requests.

func (Client) WithJSON

func (c Client) WithJSON(body interface{}) Client

WithJSON returns a shallow copy of the client with the JSON value set as the message body to include the requests. This function sets the Content-Type header.

type Config

type Config struct {
	Name                         string            `json:"name"`
	URL                          string            `json:"url"`
	Headers                      map[string]string `json:"headers"`
	AllowInsureTLS               bool              `json:"allow_insecure_tls,omitempty"`
	ResponseHeaderTimeoutSeconds *int64            `json:"response_header_timeout_seconds,omitempty"`
	Credentials                  struct {
		Bearer      *bearerAuthPlugin                  `json:"bearer,omitempty"`
		OAuth2      *oauth2ClientCredentialsAuthPlugin `json:"oauth2,omitempty"`
		ClientTLS   *clientTLSAuthPlugin               `json:"client_tls,omitempty"`
		S3Signing   *awsSigningAuthPlugin              `json:"s3_signing,omitempty"`
		GCPMetadata *gcpMetadataAuthPlugin             `json:"gcp_metadata,omitempty"`
	} `json:"credentials"`
}

Config represents configuration for a REST client.

func (*Config) Equal added in v0.20.0

func (c *Config) Equal(other *Config) bool

Equal returns true if this client config is equal to the other.

type HTTPAuthPlugin added in v0.12.0

type HTTPAuthPlugin interface {
	// implementations can assume NewClient will be called before Prepare
	NewClient(c Config) (*http.Client, error)
	Prepare(req *http.Request) error
}

An HTTPAuthPlugin represents a mechanism to construct and configure HTTP authentication for a REST service

Jump to

Keyboard shortcuts

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