Documentation
¶
Overview ¶
Package googleapi contains the common code shared by all Google API libraries.
Index ¶
- Constants
- Variables
- func BatchClient() *http.Client
- func CheckResponse(res *http.Response) error
- func ChunkSize(n int64) option
- func CloseBody(res *http.Response)
- func CombineFields(s []Field) string
- func ConvertVariant(v map[string]interface{}, dst interface{}) bool
- func Expand(baseURL *url.URL, path string, expansions map[string]string) (u *url.URL)
- func MaxRetries(n int) option
- func MediaSize(n int64) option
- func ResumableUrl(url string) option
- func SetOpaque(u *url.URL)
- func VariantType(t map[string]interface{}) string
- func Wrap(d interface{}) interface{}
- type Call
- type Caller
- type ContentTyper
- type Error
- type ErrorItem
- type Field
- type Float64s
- type Int32s
- type Int64s
- type JSONCall
- type MediaUpload
- type ProgressUpdater
- type ResumableUpload
- func (rx *ResumableUpload) Do(ctx context.Context, cl *http.Client, c *Call) error
- func (rx *ResumableUpload) Error() string
- func (rx *ResumableUpload) Resume(ctx context.Context, client *http.Client, v interface{}) error
- func (rx *ResumableUpload) Upload(ctx context.Context, client *http.Client, v interface{}) error
- type SizeReaderAt
- type Uint32s
- type Uint64s
- type UploadCaller
Constants ¶
const (
Version = "0.5"
)
Variables ¶
var (
NoContext = context.TODO()
)
Functions ¶
func BatchClient ¶
func CheckResponse ¶
CheckResponse returns an error (of type *Error) if the response status code is not 2xx.
func CloseBody ¶
CloseBody is used to close res.Body. Prior to calling Close, it also tries to Read a small amount to see an EOF. Not seeing an EOF can prevent HTTP Transports from reusing connections.
func CombineFields ¶
CombineFields combines fields into a single string.
func ConvertVariant ¶
ConvertVariant uses the JSON encoder/decoder to fill in the struct 'dst' with the fields found in variant 'v'. This is used to support "variant" APIs that can return one of a number of different types. It reports whether the conversion was successful.
func Expand ¶
Expand subsitutes any {encoded} strings in the URL passed in using the map supplied.
This calls SetOpaque to avoid encoding of the parameters in the URL path.
func SetOpaque ¶
SetOpaque sets u.Opaque from u.Path such that HTTP requests to it don't alter any hex-escaped characters in u.Path.
func VariantType ¶
VariantType returns the type name of the given variant. If the map doesn't contain the named key or the value is not a []interface{}, "" is returned. This is used to support "variant" APIs that can return one of a number of different types.
Types ¶
type Call ¶
type Call struct { // Payload is the value to be marshalled into // the request body. Payload interface{} // http method for request Method string // URL for request, not including querystring URL *url.URL // Params contain the values for calls querystring Params url.Values // Result is used to return data back to the calling function. // It may contain a pointer to a struct for unmarshalling the // response, or an *http.Response which Result interface{} }
func handleResponse(res *http.Response, v interface{}) error { closeBody := true defer func() { if closeBody { CloseBody(res) } }() var err error switch ret := v.(type) { case **http.Response: ret = &res closeBody = false case interface{}: err = json.NewDecoder(res.Body).Decode(ret) } return err }
Call object is
type Caller ¶
Caller is the interface used to execute api calls
*http.Client parameter should perform oauth2.0 authorization *Call contains url and payload data inteface{} parameter should be a ptr to a struct that the function will unmarshal the http.Response into. If the value is an *http.Response, the function will set the value to the response.
type ContentTyper ¶
type ContentTyper interface {
ContentType() string
}
ContentTyper is an interface for Readers which know (or would like to override) their Content-Type. If a media body doesn't implement ContentTyper, the type is sniffed from the content using http.DetectContentType.
type Error ¶
type Error struct { // Code is the HTTP response status code and will always be populated. Code int `json:"code"` // Message is the server response message and is only populated when // explicitly referenced by the JSON server response. Message string `json:"message"` // Body is the raw response returned by the server. // It is often but not always JSON, depending on how the request fails. Body string Errors []ErrorItem }
Error contains an error response from the server.
type ErrorItem ¶
type ErrorItem struct { // Reason is the typed error code. For example: "some_example". Reason string `json:"reason"` // Message is the human-readable description of the error. Message string `json:"message"` }
ErrorItem is a detailed error code & message from the Google API frontend.
type Field ¶
type Field string
A Field names a field to be retrieved with a partial response. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
Partial responses can dramatically reduce the amount of data that must be sent to your application. In order to request partial responses, you can specify the full list of fields that your application needs by adding the Fields option to your request.
Field strings use camelCase with leading lower-case characters to identify fields within the response.
For example, if your response has a "NextPageToken" and a slice of "Items" with "Id" fields, you could request just those fields like this:
svc.Events.List().Fields("nextPageToken", "items/id").Do()
or if you were also interested in each Item's "Updated" field, you can combine them like this:
svc.Events.List().Fields("nextPageToken", "items(id,updated)").Do()
More information about field formatting can be found here: https://developers.google.com/+/api/#fields-syntax
Another way to find field names is through the Google API explorer: https://developers.google.com/apis-explorer/#p/
type Float64s ¶
type Float64s []float64
Float64s is a slice of float64s that marshal as quoted strings in JSON.
func (Float64s) MarshalJSON ¶
func (*Float64s) UnmarshalJSON ¶
type Int32s ¶
type Int32s []int32
Int32s is a slice of int32s that marshal as quoted strings in JSON.
func (Int32s) MarshalJSON ¶
func (*Int32s) UnmarshalJSON ¶
type Int64s ¶
type Int64s []int64
Int64s is a slice of int64s that marshal as quoted strings in JSON.
func (Int64s) MarshalJSON ¶
func (*Int64s) UnmarshalJSON ¶
type MediaUpload ¶
MediaUpload is a caller that executes simple and multipart uploads
type ProgressUpdater ¶
ProgressUpdater is a function that is called upon every progress update of a resumable upload. This is the only part of a resumable upload (from googleapi) that is usable by the developer. The remaining usable pieces of resumable uploads is exposed in each auto-generated API.
type ResumableUpload ¶
type ResumableUpload struct { // URL is the resumable resource destination provided by the server after specifying "&uploadType=resumable". URL string // Media is the object being uploaded. Media io.ReaderAt // MediaType defines the media type, e.g. "image/jpeg". MediaType string // ContentLength is the full size of the object being uploaded. ContentLength int64 // ChunkSize is the size of the chunks created during a resumable upload and should be a power of two. // 1<<18 is the minimum size supported by the Google uploader, and there is no maximum. // If ChunkSize is zero, chunking is ignored. ChunkSize int64 // MaxRetries is the number of times the upload will retry after 5XX errors. MaxRetries int // Callback is an optional function that will be called upon every progress update. Callback ProgressUpdater // Error causing the upload to stop. If set to Err error // contains filtered or unexported fields }
ResumableUpload is used by the generated APIs to provide resumable uploads. It is not used by developers directly.
func NewResumableUpload ¶
func (*ResumableUpload) Error ¶
func (rx *ResumableUpload) Error() string
type SizeReaderAt ¶
A SizeReaderAt is a ReaderAt with a Size method. An io.SectionReader implements SizeReaderAt.
type Uint32s ¶
type Uint32s []uint32
Uint32s is a slice of uint32s that marshal as quoted strings in JSON.
func (Uint32s) MarshalJSON ¶
func (*Uint32s) UnmarshalJSON ¶
type Uint64s ¶
type Uint64s []uint64
Uint64s is a slice of uint64s that marshal as quoted strings in JSON.
func (Uint64s) MarshalJSON ¶
func (*Uint64s) UnmarshalJSON ¶
type UploadCaller ¶
type UploadCaller interface { Caller // contains filtered or unexported methods }
Directories
¶
Path | Synopsis |
---|---|
internal
|
|
uritemplates
Package uritemplates is a level 4 implementation of RFC 6570 (URI Template, http://tools.ietf.org/html/rfc6570).
|
Package uritemplates is a level 4 implementation of RFC 6570 (URI Template, http://tools.ietf.org/html/rfc6570). |
Package transport contains HTTP transports used to make authenticated API requests.
|
Package transport contains HTTP transports used to make authenticated API requests. |