Documentation ¶
Index ¶
- type JSONClient
- func (c *JSONClient) GetAndParse(ctx context.Context, path string, params map[string]string, rsp interface{}) (*http.Response, []byte, error)
- func (c *JSONClient) PostAndParse(ctx context.Context, path string, req, rsp interface{}) (*http.Response, []byte, error)
- func (c *JSONClient) PostAndParseWithRetry(ctx context.Context, path string, req, rsp interface{}) (*http.Response, []byte, error)
- type Logger
- type Options
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type JSONClient ¶
type JSONClient struct { Verifier *ct.SignatureVerifier // nil for no verification (e.g. no public key available) // contains filtered or unexported fields }
JSONClient provides common functionality for interacting with a JSON server that uses cryptographic signatures.
func New ¶
New constructs a new JSONClient instance, for the given base URI, using the given http.Client object (if provided) and the Options object. If opts does not specify a public key, signatures will not be verified.
func (*JSONClient) GetAndParse ¶
func (c *JSONClient) GetAndParse(ctx context.Context, path string, params map[string]string, rsp interface{}) (*http.Response, []byte, error)
GetAndParse makes a HTTP GET call to the given path, and attempta to parse the response as a JSON representation of the rsp structure. Returns the http.Response, the body of the response, and an error. Note that the returned http.Response can be non-nil even when an error is returned, in particular when the HTTP status is not OK or when the JSON parsing fails.
func (*JSONClient) PostAndParse ¶
func (c *JSONClient) PostAndParse(ctx context.Context, path string, req, rsp interface{}) (*http.Response, []byte, error)
PostAndParse makes a HTTP POST call to the given path, including the request parameters, and attempts to parse the response as a JSON representation of the rsp structure. Returns the http.Response, the body of the response, and an error. Note that the returned http.Response can be non-nil even when an error is returned, in particular when the HTTP status is not OK or when the JSON parsing fails.
func (*JSONClient) PostAndParseWithRetry ¶
func (c *JSONClient) PostAndParseWithRetry(ctx context.Context, path string, req, rsp interface{}) (*http.Response, []byte, error)
PostAndParseWithRetry makes a HTTP POST call, but retries (with backoff) on retriable errors; the caller should set a deadline on the provided context to prevent infinite retries. Return values are as for PostAndParse.
type Logger ¶
type Logger interface { // Printf formats and logs a message Printf(string, ...interface{}) }
Logger is a simple logging interface used to log internal errors and warnings
type Options ¶
type Options struct { // Interface to use for logging warnings and errors, if nil the // standard library log package will be used. Logger Logger // PEM format public key to use for signature verification. PublicKey string // DER format public key to use for signature verification. PublicKeyDER []byte }
Options are the options for creating a new JSONClient.