client

package
v0.0.0-...-a520ec0 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2016 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleResponse

func HandleResponse(c *Client, resp *http.Response, pretty bool)

HandleResponse logs the response details and exits the process with a status computed from the response status code. The mapping of response status code to exit status is as follows:

401: 1
402 to 500 (other than 403 and 404): 2
403: 3
404: 4
500+: 5

func WSRead

func WSRead(ws *websocket.Conn)

WSRead reads from a websocket and print the read messages to STDOUT.

func WSWrite

func WSWrite(ws *websocket.Conn)

WSWrite sends STDIN lines to a websocket server.

Types

type APIKeySigner

type APIKeySigner struct {
	// SignQuery indicates whether to set the API key in the URL query with key KeyName
	// or whether to use a header with name KeyName.
	SignQuery bool
	// KeyName is the name of the HTTP header or query string that contains the API key.
	KeyName string
	// KeyValue stores the actual key.
	KeyValue string
	// Format is the format used to render the key, e.g. "Bearer %s"
	Format string
}

APIKeySigner implements API Key auth.

func (*APIKeySigner) Sign

func (s *APIKeySigner) Sign(req *http.Request) error

Sign adds the API key header to the request.

type BasicSigner

type BasicSigner struct {
	// Username is the basic auth user.
	Username string
	// Password is err guess what? the basic auth password.
	Password string
}

BasicSigner implements basic auth.

func (*BasicSigner) Sign

func (s *BasicSigner) Sign(req *http.Request) error

Sign adds the basic auth header to the request.

type Client

type Client struct {
	// Doer is the underlying http client.
	Doer
	// Scheme overrides the default action scheme.
	Scheme string
	// Host is the service hostname.
	Host string
	// UserAgent is the user agent set in requests made by the client.
	UserAgent string
	// Dump indicates whether to dump request response.
	Dump bool
}

Client is the common client data structure for all goa service clients.

func New

func New(c Doer) *Client

New creates a new API client that wraps c. If c is nil the returned client wraps the default http client.

func (*Client) Do

func (c *Client) Do(ctx context.Context, req *http.Request) (*http.Response, error)

Do wraps the underlying http client Do method and adds logging. The logger should be in the context.

type Doer

type Doer interface {
	Do(*http.Request) (*http.Response, error)
}

Doer defines the Do method of the http client.

type JWTSigner

type JWTSigner struct {
	// TokenSource is a JWT token source.
	// See https://godoc.org/golang.org/x/oauth2/jwt#Config.TokenSource for an example
	// of an implementation.
	TokenSource TokenSource
}

JWTSigner implements JSON Web Token auth.

func (*JWTSigner) Sign

func (s *JWTSigner) Sign(req *http.Request) error

Sign adds the JWT auth header.

type OAuth2Signer

type OAuth2Signer struct {
	// TokenSource is an OAuth2 access token source.
	// See package golang/oauth2 and its subpackage for implementations of token
	// sources.
	TokenSource TokenSource
}

OAuth2Signer adds a authorization header to the request using the given OAuth2 token source to produce the header value.

func (*OAuth2Signer) Sign

func (s *OAuth2Signer) Sign(req *http.Request) error

Sign refreshes the access token if needed and adds the OAuth header.

type Signer

type Signer interface {
	// Sign adds required headers, cookies etc.
	Sign(*http.Request) error
}

Signer is the common interface implemented by all signers.

type StaticToken

type StaticToken struct {
	// Value used to set the auth header.
	Value string
	// OAuth type, defaults to "Bearer".
	Type string
}

StaticToken implements a token that sets the auth header with a given static value.

func (*StaticToken) SetAuthHeader

func (t *StaticToken) SetAuthHeader(r *http.Request)

SetAuthHeader sets the Authorization header to r.

func (*StaticToken) Valid

func (t *StaticToken) Valid() bool

Valid reports whether Token can be used to properly sign requests.

type StaticTokenSource

type StaticTokenSource struct {
	StaticToken *StaticToken
}

StaticTokenSource implements a token source that always returns the same token.

func (*StaticTokenSource) Token

func (s *StaticTokenSource) Token() (Token, error)

Token returns the static token.

type Token

type Token interface {
	// SetAuthHeader sets the Authorization header to r.
	SetAuthHeader(r *http.Request)
	// Valid reports whether Token can be used to properly sign requests.
	Valid() bool
}

Token is the interface to an OAuth2 token implementation. It can be implemented with https://godoc.org/golang.org/x/oauth2#Token.

type TokenSource

type TokenSource interface {
	// Token returns a token or an error.
	// Token must be safe for concurrent use by multiple goroutines.
	// The returned Token must not be modified.
	Token() (Token, error)
}

A TokenSource is anything that can return a token.

Jump to

Keyboard shortcuts

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