Loading...
Searching...
No Matches
ServiceNowRestClient::ServiceNowRestClient Class Reference

this class provides the REST client API for communication with ServiceNow servers More...

Inheritance diagram for ServiceNowRestClient::ServiceNowRestClient:
[legend]

## Public Member Functions

| constructor (hash< auto > opts, *softbool do_not_connect)
| creates the object with the given options More...
*string | getApi ()
| returns the ServiceNow REST API version currently in use More...
*string | getToken ()
| returns the access token, if any
bool | usingOAuth2 ()
| Returns True if the client is using OAuth2 authentication. More...

## Static Public Member Functions

static | error (string fmt)
| throws an exception due to an error
static hash< auto > | getOptions (hash< auto > opts)
| returns options for ServiceNowRestClient::ServiceNowRestClient::constructor()
static string | getString (hash< auto > opts, string key)
| gets a string option

## Public Attributes

const | DefaultApiVersion = "now"
| Default API version.
const | OAuth2TokenUriPathSuffix = "/oauth_token.do"
| OAuth2 token URI path suffix.
const | RequestUriPathPrefix = "/api/now"
| Request URI path prefix.

## Protected Member Functions

| loginIntern (*reference< hash< auto > > info)
| performs authentication and authorization with SAP using the OAuth2 authorization URL
hash< auto > | sendAndDecodeResponse (*data body, string m, string path, hash< auto > hdr, *reference< hash< auto > > info, *softbool decode_errors)
| sends the outgoing HTTP message and recodes the response to data

## Detailed Description

this class provides the REST client API for communication with ServiceNow servers

This class requires the following options for ServiceNow authentication and authorization to the target server:

- `username:` the ServiceNow username
- `password:` the ServiceNow password

To use OAuth2 loging, include the following options:

- `client_id:` the OAuth2 client ID
- `client_secret:` the OAuth2 client secret

## Member Function Documentation

## constructor()

ServiceNowRestClient::ServiceNowRestClient::constructor | ( | hash< auto > | opts,
|  | *softbool | do_not_connect
| ) |  |

creates the object with the given options

Example:
  ServiceNowRestClient rest({
  "url": "https://dev493922.service-now.com",
  "client_id": client_id,
  "client_secret": client_secret,
  });

Parameters

  opts

  valid options are:
  - `additional_methods:` Optional hash with more but not-HTTP-standardized methods to handle. It allows to create various HTTP extensions like e.g. WebDAV. The hash takes the method name as a key, and the value is a boolean True or False: indicating if the method requires a message body as well. Example:
    # add new HTTP methods for WebDAV. Both of them require body posting to the server
    {"additional_methods": {"PROPFIND": True, "MKCOL": True}}
  - `api:` the API version for ServiceNow
  - `client_id:` (required) the OAuth2 client ID
  - `client_secret:` (required) the OAuth2 client secret
  - `content_encoding:` for possible values, see EncodingSupport; this sets the send encoding (if the `"send_encoding"` option is not set) and the requested response encoding (note that the RestClient class will only compress outgoing message bodies over CompressionThreshold bytes in size)
  - `data:` a data serialization option; if not present defaults to `"json"`
  - `default_path:` The default path to use for new connections if a path is not otherwise specified in the connection URL
  - `default_port:` The default port number to connect to if none is given in the URL
  - `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
  - `http_version:` Either '1.0' or '1.1' (default) for the claimed HTTP protocol version compliancy in outgoing message headers
  - `max_redirects:` The maximum number of redirects before throwing an exception (the default is 5)
  - `password:` (required) The ServiceNow password
  - `proxy:` The proxy URL for connecting through a proxy
  - `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 `"gzip"` content encoding on sent message bodies (note that the RestClient class will only compress outgoing message bodies over CompressionThreshold bytes in size)
  - `timeout:` The timeout value in milliseconds (also can be a relative date-time value for clarity, ex: `30s`)
  - `username:` (required) The ServiceNow username

  do_not_connect | if `False` (the default), then a connection will be immediately established to the remote server

Exceptions

  RESTCLIENT-ERROR | invalid option passed to constructor, unsupported data serialization, etc
  ServiceNowRESTCLIENT-ERROR | missing or invalid required option for REST authentication or communication

## getApi()

*string ServiceNowRestClient::ServiceNowRestClient::getApi | ( |  | ) |

returns the ServiceNow REST API version currently in use

Returns
  the ServiceNow REST API version currently in use; if NOTHING is returned, then the latest API is used

## usingOAuth2()

bool ServiceNowRestClient::ServiceNowRestClient::usingOAuth2 | ( |  | ) |

Returns True if the client is using OAuth2 authentication.

Since
  ServiceNowRestClient 1.1