Documentation
      ¶
    
    
  
    
  
    Index ¶
- func RequestRetryAll(retryFuncs ...RequestRetryFunc) func(resp *http.Response, o *odata.OData) (bool, error)
 - func RequestRetryAny(retryFuncs ...RequestRetryFunc) func(resp *http.Response, o *odata.OData) (bool, error)
 - func RetryOn404ConsistencyFailureFunc(resp *http.Response, _ *odata.OData) (bool, error)
 - func RetryableErrorHandler(resp *http.Response, err error, _ int) (*http.Response, error)
 - type BaseClient
 - type Client
 - func (c *Client) AppendRequestMiddleware(f RequestMiddleware)
 - func (c *Client) AppendResponseMiddleware(f ResponseMiddleware)
 - func (c *Client) ClearRequestMiddlewares()
 - func (c *Client) ClearResponseMiddlewares()
 - func (c *Client) Execute(ctx context.Context, req *Request) (*Response, error)
 - func (c *Client) ExecutePaged(ctx context.Context, req *Request) (*Response, error)
 - func (c *Client) GetUserAgent() string
 - func (c *Client) NewRequest(ctx context.Context, input RequestOptions) (*Request, error)
 - func (c *Client) SetAuthorizer(authorizer auth.Authorizer)
 - func (c *Client) SetUserAgent(userAgent string)
 
- type Headers
 - type Options
 - type QueryParams
 - type Request
 - type RequestMiddleware
 - type RequestOptions
 - type RequestRetryFunc
 - type Response
 - type ResponseErrorParser
 - type ResponseMiddleware
 - type ValidStatusFunc
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RequestRetryAll ¶
func RequestRetryAll(retryFuncs ...RequestRetryFunc) func(resp *http.Response, o *odata.OData) (bool, error)
RequestRetryAll wraps multiple RequestRetryFuncs and calls them in turn, only returning true if all funcs return true
func RequestRetryAny ¶
func RequestRetryAny(retryFuncs ...RequestRetryFunc) func(resp *http.Response, o *odata.OData) (bool, error)
RequestRetryAny wraps multiple RequestRetryFuncs and calls them in turn, returning true if any func returns true
func RetryOn404ConsistencyFailureFunc ¶
RetryOn404ConsistencyFailureFunc can be used to retry a request when a 404 response is received
Types ¶
type BaseClient ¶
type BaseClient interface {
	// Execute invokes a non-paginated API request and returns a populated *Response
	Execute(ctx context.Context, req *Request) (*Response, error)
	// ExecutePaged invokes a paginated API request, merges the results from all pages and returns a populated *Response with all results
	ExecutePaged(ctx context.Context, req *Request) (*Response, error)
	// NewRequest constructs a *Request that can be passed to Execute or ExecutePaged
	NewRequest(ctx context.Context, input RequestOptions) (*Request, error)
	// SetAuthorizer configures the request authorizer for the client
	SetAuthorizer(auth.Authorizer)
	// SetUserAgent configures the user agent to be included in requests
	SetUserAgent(string)
	// GetUserAgent retrieves the configured user agent for the client
	GetUserAgent() string
	// AppendRequestMiddleware appends a request middleware function for the client
	AppendRequestMiddleware(RequestMiddleware)
	// ClearRequestMiddlewares removes all request middleware functions for the client
	ClearRequestMiddlewares()
	// AppendResponseMiddleware appends a response middleware function for the client
	AppendResponseMiddleware(ResponseMiddleware)
	// ClearResponseMiddlewares removes all response middleware functions for the client
	ClearResponseMiddlewares()
}
    type Client ¶
type Client struct {
	// BaseUri is the base endpoint for this API.
	BaseUri string
	// UserAgent is the HTTP user agent string to send in requests.
	UserAgent string
	// CorrelationId is a custom correlation ID which can be added to requests for tracing purposes
	CorrelationId string
	// Authorizer is anything that can provide an access token with which to authorize requests.
	Authorizer auth.Authorizer
	// AuthorizeRequest is an optional function to decorate a Request for authorization prior to being sent.
	// When nil, a standard Authorization header will be added using a bearer token as returned by the Token method
	// of the configured Authorizer. Define this function in order to customize the request authorization.
	AuthorizeRequest func(context.Context, *http.Request, auth.Authorizer) error
	// DisableRetries prevents the client from reattempting failed requests (which it does to work around eventual consistency issues).
	// This does not impact handling of retries related to rate limiting, which are always performed.
	DisableRetries bool
	// RequestMiddlewares is a slice of functions that are called in order before a request is sent
	RequestMiddlewares *[]RequestMiddleware
	// ResponseMiddlewares is a slice of functions that are called in order before a response is parsed and returned
	ResponseMiddlewares *[]ResponseMiddleware
}
    Client is a base client to be used by API-specific clients. It satisfies the BaseClient interface.
func (*Client) AppendRequestMiddleware ¶ added in v0.20240208.1160128
func (c *Client) AppendRequestMiddleware(f RequestMiddleware)
AppendRequestMiddleware appends a request middleware function for the client
func (*Client) AppendResponseMiddleware ¶ added in v0.20240208.1160128
func (c *Client) AppendResponseMiddleware(f ResponseMiddleware)
AppendResponseMiddleware appends a response middleware function for the client
func (*Client) ClearRequestMiddlewares ¶ added in v0.20240208.1160128
func (c *Client) ClearRequestMiddlewares()
ClearRequestMiddlewares removes all request middleware functions for the client
func (*Client) ClearResponseMiddlewares ¶ added in v0.20240208.1160128
func (c *Client) ClearResponseMiddlewares()
ClearResponseMiddlewares removes all response middleware functions for the client
func (*Client) ExecutePaged ¶
ExecutePaged automatically pages through the results of Execute
func (*Client) GetUserAgent ¶ added in v0.20240208.1160128
GetUserAgent retrieves the configured user agent for the client
func (*Client) NewRequest ¶
NewRequest configures a new *Request
func (*Client) SetAuthorizer ¶ added in v0.20240208.1160128
func (c *Client) SetAuthorizer(authorizer auth.Authorizer)
SetAuthorizer configures the request authorizer for the client
func (*Client) SetUserAgent ¶ added in v0.20240208.1160128
SetUserAgent configures the user agent to be included in requests
type Headers ¶
type Headers struct {
	// contains filtered or unexported fields
}
    Headers is a representation of the HTTP headers to be sent with a Request
func (*Headers) AppendHeader ¶
AppendHeader appends the http.Header values
type Options ¶
type Options interface {
	// ToHeaders yields a custom Headers struct to be appended to the request
	ToHeaders() *Headers
	// ToOData yields a custom *odata.Query struct to be appended to the request
	ToOData() *odata.Query
	// ToQuery yields a custom *QueryParams struct to be appended to the request
	ToQuery() *QueryParams
}
    type QueryParams ¶
type QueryParams struct {
	// contains filtered or unexported fields
}
    QueryParams is a representation of the URL query parameters to be sent with a Request
func (*QueryParams) Append ¶
func (q *QueryParams) Append(key, value string)
Append sets a single query parameter value
func (*QueryParams) AppendValues ¶
func (q *QueryParams) AppendValues(q2 url.Values)
AppendValues appends the url.Values values
func (*QueryParams) Merge ¶
func (q *QueryParams) Merge(q2 Headers)
Merge copies the query parameter values from q2, overwriting as necessary
func (*QueryParams) Values ¶
func (q *QueryParams) Values() url.Values
Values returns a url.Values map containing query parameter values
type Request ¶
type Request struct {
	RetryFunc        RequestRetryFunc
	ValidStatusCodes []int
	ValidStatusFunc  ValidStatusFunc
	Client BaseClient
	Pager  odata.CustomPager
	CustomErrorParser ResponseErrorParser
	// Embed *http.Request so that we can send this to an *http.Client
	*http.Request
}
    Request embeds *http.Request and adds useful metadata
func (*Request) ExecutePaged ¶
ExecutePaged invokes the ExecutePaged method for the Request's Client
func (*Request) IsIdempotent ¶
IsIdempotent determines whether a Request can be safely retried when encountering a connection failure
type RequestMiddleware ¶
RequestMiddleware can manipulate or log a request before it is sent
type RequestOptions ¶
type RequestOptions struct {
	// ContentType is the content type of the request and should include the charset
	ContentType string
	// ExpectedStatusCodes is a slice of HTTP response codes considered valid for this request
	ExpectedStatusCodes []int
	// HttpMethod is the capitalized method verb for this request
	HttpMethod string
	// OptionsObject is used for dynamically modifying the request at runtime
	OptionsObject Options
	// Pager is an optional struct for handling custom pagination for this request. OData 4.0 compliant paging
	// is already handled implicitly and does not require a custom pager.
	Pager odata.CustomPager
	// Path is the absolute URI for this request, with a leading slash.
	Path string
	// RetryFunc is an optional function to determine whether a request should be automatically retried
	RetryFunc RequestRetryFunc
}
    func (RequestOptions) Validate ¶
func (ro RequestOptions) Validate() error
type RequestRetryFunc ¶
RequestRetryFunc is a function that determines whether an HTTP request has failed due to eventual consistency and should be retried
type ResponseErrorParser ¶ added in v0.20240422.1112441
ResponseErrorParser is an optional custom parser that can parse an API error response to provide a friendly error
type ResponseMiddleware ¶
ResponseMiddleware can manipulate or log a response before it is parsed and returned