package rest
import "github.com/open-policy-agent/opa/plugins/rest"
Package rest implements a REST client for communicating with remote services.
Index ¶
- func Name(s string) func(*Client)
- type Client
- func New(config []byte, opts ...func(*Client)) (Client, error)
- func (c Client) Do(ctx context.Context, method, path string) (*http.Response, error)
- func (c Client) Service() string
- func (c Client) WithBytes(body []byte) Client
- func (c Client) WithHeader(k, v string) Client
- func (c Client) WithJSON(body interface{}) Client
- type Config
- type HTTPAuthPlugin
Functions ¶
func Name ¶
Name returns an option that overrides the service name on the client.
Types ¶
type Client ¶
Client implements an HTTP/REST client for communicating with remote services.
func New ¶
New returns a new Client for config.
func (Client) Do ¶
Do executes a request using the client.
func (Client) Service ¶
Service returns the name of the service this Client is configured for.
func (Client) WithBytes ¶
WithBytes returns a shallow copy of the client with the bytes set as the message body to include in the requests.
func (Client) WithHeader ¶
WithHeader returns a shallow copy of the client with a header to include the requests.
func (Client) WithJSON ¶
WithJSON returns a shallow copy of the client with the JSON value set as the message body to include the requests. This function sets the Content-Type header.
type Config ¶
type Config struct { Name string `json:"name"` URL string `json:"url"` Headers map[string]string `json:"headers"` AllowInsureTLS bool `json:"allow_insecure_tls,omitempty"` Credentials struct { Bearer *bearerAuthPlugin `json:"bearer,omitempty"` ClientTLS *clientTLSAuthPlugin `json:"client_tls,omitempty"` S3Signing *awsSigningAuthPlugin `json:"s3_signing,omitempty"` } `json:"credentials"` }
Config represents configuration for a REST client.
type HTTPAuthPlugin ¶
type HTTPAuthPlugin interface { // implementations can assume NewClient will be called before Prepare NewClient(c Config) (*http.Client, error) Prepare(req *http.Request) error }
An HTTPAuthPlugin represents a mechanism to construct and configure HTTP authentication for a REST service
Source Files ¶
- Version
- v0.13.0
- Published
- Aug 6, 2019
- Platform
- js/wasm
- Imports
- 24 packages
- Last checked
- 2 hours ago –
Tools for package owners.