Sap4HanaRestClient::Sap4HanaRestClient Class Reference

this class provides the REST client API for communication with SAP S/4Hana servers More...

Inheritance diagram for Sap4HanaRestClient::Sap4HanaRestClient:
[legend]

## Public Member Functions

| constructor (hash< auto > opts, *softbool do_not_connect)
| creates the object with the given options (which include the mandatory `apikey` option for SAP S/4Hana server 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 the Sap4HanaRestClient::constructor()
static string | getString (hash< auto > opts, string key)
| gets a string option

## Public Attributes

const | DefaultSendEncoding = "gzip"
| default send encoding
const | OAuth2UriPath = "oauth2/apitoken/v1?grant_type=client_credentials"
| OAuth2 URI path.

## Protected Member Functions

| loginIntern (*reference< hash< auto >> info)
| performs authentication and authorization with SAP using the OAuth2 authorization URL

## Detailed Description

this class provides the REST client API for communication with SAP S/4Hana servers

This class requires the following options for SAP S/4Hana authentication and authorization to the target server:

- `apikey:` the SAP S/4Hana API key

## Member Function Documentation

## constructor()

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

creates the object with the given options (which include the mandatory `apikey` option for SAP S/4Hana server authentication)

Example:
  Sap4HanaRestClient rest({"url": "https://sandbox.api.sap.com/s4hanacloud/sap/opu/odata/sap", "apikey": apikey});

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 ));
  - `apikey:` (required) the SAP S/4Hana api key for the target server
  - `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)
  - `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`)

  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
  SAP4HANARESTCLIENT-ERROR | missing or invalid required option for SAP S/4Hana REST authentication or communication