Documentation ¶
Overview ¶
Package jsonclient provides a simple client for fetching and parsing JSON CT structures from a log.
Index ¶
- type JSONClient
- func (c *JSONClient) BaseURI() string
- 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
- type RspError
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) BaseURI ¶ added in v1.0.17
func (c *JSONClient) BaseURI() string
BaseURI returns the base URI that the JSONClient makes queries to.
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 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 (which may be of type RspError if the HTTP response was available).
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 (which may be of type RspError if the HTTP response was available).
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 retryable 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 // UserAgent, if set, will be sent as the User-Agent header with each request. UserAgent string }
Options are the options for creating a new JSONClient.