RestClient::RestConnection Class Reference

class for REST HTTP connections; returns RestClient::RestClient objects More...

Inherits HttpBasedConnection.

## Public Member Functions

deprecated | constructor (string name, string desc, string url, bool monitor, *hash< auto > opts, hash< auto > urlh)
| DEPRECATED: creates the RestConnection object. More...
| constructor (string name, string description, string url, hash< auto > attributes={}, hash< auto > options={})
| creates the RestConnection connection object More...
DataProvider::AbstractDataProvider | getDataProvider ()
| returns a data provider object for this connection, if supported by any REST schema validator object More...
*hash< auto > | getDefaultOptions ()
| returns default options
hash< auto > | getOptions ()
| gets options More...
string | getType ()
| returns `"rest"`
bool | hasDataProvider ()
| returns True if this connection returns a data provider with the getDataProvider() method More...

## Static Public Member Functions

static deprecated RestConnection | make (string name, string desc, string url, bool monitor, *hash< auto > opts, hash< auto > urlh)
| DEPRECATED: static constructor. More...
static hash< auto > | processOptions (*hash< auto > opts)
| processes options for the constructor; in particular parses any string as a value of the `"headers"` option to return a hash

## Public Attributes

const | Options
| RestConnection object connection options.
hash< auto > | real_opts
| real options used when creating an object

## Protected Member Functions

RestClient | getImpl (bool connect=True, *hash< auto > rtopts)
| returns a RestClient object More...

## Detailed Description

class for REST HTTP connections; returns RestClient::RestClient objects

supports the following options:

- `"connect_timeout"`: connection timeout to use in milliseconds
- `"content_encoding"`: this sets the send encoding (if the `"send_encoding"` option is not set) and the requested response encoding; for possible values, see EncodingSupport
- `"data"`: see RestClient::RestClient::DataSerializationOptions for possible values when used with the null REST schema validator; the default is `"auto"`
- `"error_passthru"`: if True then HTTP status codes indicating errors will not cause a `REST-RESPONSE-ERROR` exception to be raised, rather such responses will be passed through to the caller like any other response
- `"headers"`: an optional hash of headers to send with every request, these can also be overridden in request method calls; also a string giving headers can be given in the format: `header1=value, header2=value`; the value will be parsed with parse_to_qore_value()
- `"http_version"`: HTTP version to use (`"1.0"` or `"1.1"`, defaults to `"1.1"`)
- `"max_redirects"`: maximum redirects to support
- `"proxy"`: proxy URL to use
- `"redirect_passthru"`: if True then redirect responses will be passed to the caller instead of processed
- `"send_encoding"`: a send data encoding option or the value `"auto"` which means to use automatic encoding; if not present defaults to no content-encoding on sent message bodies
- `"swagger"`: the path to a Swagger 2.0 REST schema file for runtime API validation (see the Swagger module); conflicts with validator
- `"timeout"`: transfer timeout to use in milliseconds
- `"validator"`: an AbstractRestSchemaValidator object to validate request and response messages; conflicts with swagger

Note
  additionally supports the following runtime option in getImpl():
  - `"validator"`: an AbstractRestSchemaValidator object for REST message validation (if present, overrides any REST schema validation option provided as a connection option)

See also
  RestClient::constructor() for more information on the above options

Since
  RestConnection 1.4

## Member Function Documentation

## constructor() [1/2]

deprecated RestClient::RestConnection::constructor | ( | string | name,
|  | string | desc,
|  | string | url,
|  | bool | monitor,
|  | *hash< auto > | opts,
|  | hash< auto > | urlh
| ) |  |

DEPRECATED: creates the RestConnection object.

Parameters

  name | the name of the connection
  desc | connection description
  url | connection URL (potentially with password info)
  monitor | monitoring flag
  opts | connection options
  urlh | broken down URL hash (as returned by Qore::parse_url())

Deprecated:
  since Qore 0.9

## constructor() [2/2]

RestClient::RestConnection::constructor | ( | string | name,
|  | string | description,
|  | string | url,
|  | hash< auto > | attributes = `{}`,
|  | hash< auto > | options = `{}`
| ) |  |

creates the RestConnection connection object

Parameters

  name | the name of the connection
  description | connection description
  url | connection URL (potentially with password info)
  attributes | various attributes. See below
  options | connection options

See AbstractConnection::constructor() for `attributes` and `options` reference.

Additional Attributes
  - `error` a custom error string

## getDataProvider()

DataProvider::AbstractDataProvider RestClient::RestConnection::getDataProvider | ( |  | ) |

returns a data provider object for this connection, if supported by any REST schema validator object

Returns
  a data provider object for this connection, if supported by any REST schema validator object

Exceptions

  DATA-PROVIDER-ERROR | this object does not support the data provider API

## getImpl()

RestClient RestClient::RestConnection::getImpl | ( | bool | connect = `True`,
|  | *hash< auto > | rtopts
| ) |  |

protected

returns a RestClient object

Parameters

  connect | if True, then the connection is returned already connected

  rtopts

  supports the following runtime option in getImpl():
  - `"validator"`: an AbstractRestSchemaValidator object for REST message validation (if present, overrides any REST schema validation option provided as a connection option)

Returns
  a RestClient object

## getOptions()

hash<auto> RestClient::RestConnection::getOptions | ( |  | ) |

gets options

Returns
  returns a hash with the following supported options:
  - `"connect_timeout"`: connection timeout to use in milliseconds
  - `"content_encoding"`: this sets the send encoding (if the `"send_encoding"` option is not set) and the requested response encoding; for possible values, see EncodingSupport
  - `"data"`: see RestClient::RestClient::DataSerializationOptions for possible values when used with the null REST schema validator; the default is `"auto"`
  - `"error_passthru"`: if True then HTTP status codes indicating errors will not cause a `REST-RESPONSE-ERROR` exception to be raised, rather such responses will be passed through to the caller like any other response
  - `"headers"`: an optional hash of headers to send with every request, these can also be overridden in request method calls; also a string giving headers can be given in the format: `header1=value, header2=value`; the value will be parsed with parse_to_qore_value()
  - `"http_version"`: HTTP version to use (`"1.0"` or `"1.1"`, defaults to `"1.1"`)
  - `"max_redirects"`: maximum redirects to support
  - `"proxy"`: proxy URL to use
  - `"redirect_passthru"`: if True then redirect responses will be passed to the caller instead of processed
  - `"send_encoding"`: a send data encoding option or the value `"auto"` which means to use automatic encoding; if not present defaults to no content-encoding on sent message bodies
  - `"swagger"`: the path to a Swagger 2.0 REST schema file for runtime API validation (see the Swagger module); conflicts with validator
  - `"timeout"`: transfer timeout to use in milliseconds
  - `"validator"`: an AbstractRestSchemaValidator object to validate request and response messages; conflicts with swagger

See also
  RestClient::constructor() for more information on the above options

## hasDataProvider()

bool RestClient::RestConnection::hasDataProvider | ( |  | ) |

returns True if this connection returns a data provider with the getDataProvider() method

Returns
  True if this connection returns a data provider with the getDataProvider() method

See also
  getDataProvider()

## make()

static deprecated RestConnection RestClient::RestConnection::make | ( | string | name,
|  | string | desc,
|  | string | url,
|  | bool | monitor,
|  | *hash< auto > | opts,
|  | hash< auto > | urlh
| ) |  |

static

DEPRECATED: static constructor.

Deprecated:
  since Qore 0.9 in favor of new constructor and Qore::Reflection