api

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2024 License: Apache-2.0 Imports: 3 Imported by: 3

Documentation

Overview

Package api groups packages simplifying Dynatrace API access.

Notably it contains the following packages

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeJSON

func DecodeJSON[T any](r Response) (T, error)

DecodeJSON tries to unmarshal the Response.Data of the given Response r into an object of T.

func DecodeJSONObjects

func DecodeJSONObjects[T any](r ListResponse) ([]T, error)

DecodeJSONObjects unmarshalls Objects contained in the given ListResponse into a slice of T. To decode the full JSON response contained in ListResponse use Response.DecodeJSON.

func DecodePaginatedJSONObjects added in v0.2.0

func DecodePaginatedJSONObjects[T any](p PagedListResponse) ([]T, error)

DecodePaginatedJSONObjects unmarshalls all objects contained in the given PagedListResponse into a slice of T. Alternative ways to access data are to use PagedListResponse as a []ListResponse and decode each ListResponse or to access and decode the entries as []byte via PagedListResponse.All.

Types

type APIError

type APIError struct {
	StatusCode int              `json:"statusCode"` // StatusCode is the HTTP response status code returned by the API.
	Body       []byte           `json:"body"`       // Body is the HTTP payload returned by the API.
	Request    rest.RequestInfo `json:"request"`    // Request is information about the original request that led to this response error.
}

APIError represents an error returned by an API with associated information.

func (APIError) Error

func (r APIError) Error() string

Error returns a string representation of the APIError, providing details about the failed API request. It includes the HTTP method, URL, status code, and response body.

Returns: - string: A string representing the error message.

type ListResponse

type ListResponse struct {
	Response
	Objects [][]byte `json:"-"`
}

ListResponse represents a multi-object API response It contains both the full JSON Data, and a slice of Objects for more convenient access

type PagedListResponse added in v0.2.0

type PagedListResponse []ListResponse

PagedListResponse is a list of ListResponse values. It is used by return values of APIs that support pagination. Each ListResponse entry possibly contains multiple objects of the fetched resource type. To get all response objects in a single slice of []byte you can call All().

In case of any individual API request being unsuccessful, PagedListResponse will contain only that failed ListResponse.

func (PagedListResponse) All added in v0.2.0

func (p PagedListResponse) All() [][]byte

All returns all objects of a PagedListResponse in one slice

func (PagedListResponse) AsAPIError added in v0.2.0

func (p PagedListResponse) AsAPIError() (APIError, bool)

AsAPIError converts a PagedListResponse pointer to an APIError if it represents a 4xx or 5xx error. If the PagedListResponse does not represent an error, it returns an empty APIError and false. Unlike a normal Response, a PagedListResponse represents several individual API responses as a slice. In case of any response being unsuccessful, PagedListResponse will contain only that response by convention - this fact is used by this method.

Parameters: - [ (PagedListResponse): The PagedListResponse object to convert to an APIError.

Returns:

  • (APIError, bool): An APIError containing error information and a boolean indicating whether the conversion was successful (true for errors, false otherwise).

type Response

type Response struct {
	StatusCode int              `json:"-"`
	Data       []byte           `json:"-"`
	Request    rest.RequestInfo `json:"-"`
}

Response represents an API response

func (Response) AsAPIError

func (r Response) AsAPIError() (APIError, bool)

AsAPIError converts a Response object to an APIError if it represents a 4xx or 5xx error. If the Response does not represent an error, it returns an empty APIError and false.

Parameters: - r (Response): The Response object to convert to an APIError.

Returns:

  • (APIError, bool): An APIError containing error information and a boolean indicating whether the conversion was successful (true for errors, false otherwise).

func (Response) Is4xxError

func (r Response) Is4xxError() bool

Is4xxError returns true if the response indicates a 4xx client error HTTP status code. A status code between 400 and 499 (inclusive) is considered a client error.

func (Response) Is5xxError

func (r Response) Is5xxError() bool

Is5xxError returns true if the response indicates a 5xx server error HTTP status code. A status code between 500 and 599 (inclusive) is considered a server error.

func (Response) IsSuccess

func (r Response) IsSuccess() bool

IsSuccess returns true if the response indicates a successful HTTP status code. A status code between 200 and 299 (inclusive) is considered a success.

Directories

Path Synopsis
Package auth simplifies creating token and oAuth authenticated http.Client for use with rest.Client
Package auth simplifies creating token and oAuth authenticated http.Client for use with rest.Client
Package clients contains simple CRUD clients for the Dynatrace API.
Package clients contains simple CRUD clients for the Dynatrace API.
automation
Package automation (api/clients/automation) provides a simple CRUD client for the Automations API.
Package automation (api/clients/automation) provides a simple CRUD client for the Automations API.
buckets
Package buckets (api/clients/buckets) provides a simple CRUD client for the Grail Bucket API.
Package buckets (api/clients/buckets) provides a simple CRUD client for the Grail Bucket API.
Package rest provides an extended rest.Client with optional behaviours like rate limiting, request/response logging, etc.
Package rest provides an extended rest.Client with optional behaviours like rate limiting, request/response logging, etc.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL