Qore Sap4HanaRestClient Module Reference 1.1
Loading...
Searching...
No Matches
Sap4HanaRestClient::Sap4HanaRestClient Class Reference

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

#include <Sap4HanaRestClient.qm.dox.h>

Inheritance diagram for Sap4HanaRestClient::Sap4HanaRestClient:
[legend]

Public Member Methods

 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)
 

Static Public Member Methods

static hash< auto > getOptions (hash< auto > opts)
 returns options for the Sap4HanaRestClient::constructor()
 
static raiseError (string fmt,...)
 throws an exception due to an error
 

Public Attributes

const DefaultSendEncoding = "gzip"
 default send encoding
 
const OAuth2TokenUriPath = "oauth2/apitoken/v1"
 OAuth2 URI path.
 

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:

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
optsvalid 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_connectif False (the default), then a connection will be immediately established to the remote server
Exceptions
RESTCLIENT-ERRORinvalid option passed to constructor, unsupported data serialization, etc
SAP4HANARESTCLIENT-ERRORmissing or invalid required option for SAP S/4Hana REST authentication or communication