api

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: May 16, 2025 License: Apache-2.0 Imports: 6 Imported by: 30

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.

func IsNotFoundError added in v0.9.0

func IsNotFoundError(err error) bool

func NewAPIErrorFromResponse added in v0.6.0

func NewAPIErrorFromResponse(resp *http.Response) error

func NewRequestInfoFromRequest added in v0.7.0

func NewRequestInfoFromRequest(request *http.Request) rest.RequestInfo

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 NewAPIErrorFromResponseAndBody added in v0.6.0

func NewAPIErrorFromResponseAndBody(resp *http.Response, body []byte) APIError

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.

func (APIError) Is4xxError added in v0.7.0

func (r APIError) Is4xxError() bool

func (APIError) Is5xxError added in v0.7.0

func (r APIError) Is5xxError() bool

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 MultipartResponse added in v0.6.0

type MultipartResponse struct {
	StatusCode int
	Parts      []Part
	Request    rest.RequestInfo
}

MultipartResponse represent an HTTP multipart response. Each field part of a multipart content is in the map indexed with the name of the part.

func NewMultipartResponse added in v0.6.0

func NewMultipartResponse(resp *http.Response, parts ...Part) *MultipartResponse

func (*MultipartResponse) GetPartWithName added in v0.6.0

func (mr *MultipartResponse) GetPartWithName(name string) (Part, bool)

func (*MultipartResponse) IsSuccess added in v0.6.0

func (mr *MultipartResponse) IsSuccess() bool

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

type Part added in v0.6.0

type Part struct {
	FormName, FileName string
	Content            []byte
}

type Response

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

Response represents an API response

func AsResponseOrError added in v0.7.0

func AsResponseOrError(httpResponse *http.Response, err error) (*Response, error)

AsResponseOrError is a helper function to convert an http.Response or error to a Response or error. It ensures that the response body is always read to completion and closed. Any non-successful (i.e. not 2xx) status code results in an APIError. Deprecated: To create new Response use NewResponseFromHTTPResponse

func NewResponseFromHTTPResponse added in v0.8.0

func NewResponseFromHTTPResponse(httpResponse *http.Response) (Response, error)

NewResponseFromHTTPResponse is a constructor which convert a http.Response to a Response. It ensures that the response body of http.Response is always read to completion and closed. Any non-successful (i.e. not 2xx) status code results in an APIError.

func NewResponseFromHTTPResponseAndBody added in v0.6.0

func NewResponseFromHTTPResponseAndBody(resp *http.Response, body []byte) Response

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