Documentation ¶
Overview ¶
Package googleapi contains the common code shared by all Google API libraries.
Index ¶
- Constants
- Variables
- func CheckResponse(res *http.Response) error
- func CloseBody(res *http.Response)
- func ConditionallyIncludeMedia(media io.Reader, bodyp *io.Reader, ctypep *string) (totalContentLength int64, ok bool)
- func ConvertVariant(v map[string]interface{}, dst interface{}) bool
- func Expand(u *url.URL, expansions map[string]string)
- func ResolveRelative(basestr, relstr string) string
- func SetOpaque(u *url.URL)
- func VariantType(t map[string]interface{}) string
- type ContentTyper
- type Error
- type ErrorItem
- type Float64s
- type Int32s
- type Int64s
- type Lengther
- type MarshalStyle
- type Uint32s
- type Uint64s
Constants ¶
const Version = "0.5"
Variables ¶
var WithDataWrapper = MarshalStyle(true)
var WithoutDataWrapper = MarshalStyle(false)
Functions ¶
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 ConditionallyIncludeMedia ¶
func ConditionallyIncludeMedia(media io.Reader, bodyp *io.Reader, ctypep *string) (totalContentLength int64, ok bool)
ConditionallyIncludeMedia does nothing if media is nil.
bodyp is an in/out parameter. It should initially point to the reader of the application/json (or whatever) payload to send in the API request. It's updated to point to the multipart body reader.
ctypep is an in/out parameter. It should initially point to the content type of the bodyp, usually "application/json". It's updated to the "multipart/related" content type, with random boundary.
The return value is the content-length of the entire multpart body.
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 ResolveRelative ¶
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 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 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 MarshalStyle ¶
type MarshalStyle bool
func (MarshalStyle) JSONReader ¶
func (wrap MarshalStyle) JSONReader(v interface{}) (io.Reader, error)
type Uint32s ¶
type Uint32s []uint32
Uint32s is a slice of uint32s that marshal as quoted strings in JSON.