rest

package
v1.24.2 Latest Latest
Warning

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

Go to latest
Published: Nov 16, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	BaseURL    *url.URL
	HTTPClient *http.Client
	// if not nil, call SetUpRequest() just before the Do() call
	SetupRequest func(req *http.Request, c *Client, body []byte)
	// contains filtered or unexported fields
}

func NewClient

func NewClient(options ...Options) *Client

NewClient returns a *Client struct, ready to use. Unless options are supplied the base URL defaults to `https://localhost:443`.

func (*Client) Auth

func (c *Client) Auth(ctx context.Context, clientID string, clientSecret *config.Plaintext)

Auth sets up a 2-legged OAUTH2 with client ID and Secret. If clientID is empty just return, allowing callers to call when the value are not set (or empty) not set.

func (*Client) Delete

func (c *Client) Delete(ctx context.Context, endpoint string, request any) (resp *http.Response, err error)

Delete Method

func (*Client) Get

func (c *Client) Get(ctx context.Context, endpoint any, request any, response any) (resp *http.Response, err error)

GET method. On successful return the response body will be closed. endpoint is either a string or a *url.URL relative to the client c base URL.

func (*Client) Post

func (c *Client) Post(ctx context.Context, endpoint any, request any, response any) (resp *http.Response, err error)

Post issues a POST request to the client using endpoint as either a relative path to the base URL in the client, encoding request as a JSON body and decoding any returned body into result, if set. endpoint is either a string or a *url.URL relative to the client c base URL.

func (*Client) Put

func (c *Client) Put(ctx context.Context, endpoint any, request any, response any) (resp *http.Response, err error)

PUT method endpoint is either a string or a *url.URL relative to the client c base URL.

func (*Client) SetAuth

func (c *Client) SetAuth(header, value string)

SetAuth sets an explicit authentication header to value for clients that do not use OAUTH etc.

type Options

type Options func(*restOptions)

Options are used to control behaviour of ICP functions

func BaseURL

func BaseURL(baseurl *url.URL) Options

BaseURLString sets the root of the REST API URL. The default is "https://localhost"

func BaseURLString added in v1.14.2

func BaseURLString(baseurl string) Options

BaseURLString sets the root of the REST API URL. The default is "https://localhost"

func HTTPClient

func HTTPClient(client *http.Client) Options

HTTPClient sets the http.Client to use for requests. The default is the default http package client.

func SetupRequestFunc added in v1.12.1

func SetupRequestFunc(f func(req *http.Request, c *Client, body []byte)) Options

SetupRequestFunc sets a function to call while setting up the request. For example, to add Basic Authentication:

client = rest.NewClient(
        rest.SetupRequestFunc(func(req *http.Request, c *rest.Client, body []byte) {
            req.SetBasicAuth(username, password.String())
        }),
    )

Jump to

Keyboard shortcuts

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