convenience utility for calling a URL via a SAP CF destination
npm install sap-cf-destinationdestination and destination instance createdconnectivity instance createdxsuaa instance createdmanifest.yml:// Promise chain
callDestination({
url: '/api/json',
connectivity_instance: 'connectivity-lite',
uaa_instance: 'uaa-lite',
destination_instance: 'destination-lite',
destination_name: 'tbaas',
http_verb: 'POST',
payload: {
"me": "here"
}
})
.then(response => {
// do sth clever from the response
// of $server_behind_destination_'tbaas'/api/json
})
.catch(err => {
// oh no 💩
})
// async/await? 👏
// add the 'async' keyword to an outer function wrapping 'callDestination'
async function getIt() {
try {
const response = await callDestination({...});
// do sth clever w/ the response
} catch (err) {
// oh no 💩
}
}
~~~
Promise.<(any\|never)>| Param | Type | Description |
| --- | --- | --- |
| options | Map | configuration options for several CF service instances |
| options.url | string | the url to call in the destination, absolute path (including leading slash) e.g. /api/v1/json |
| options.connectivity_instance | string | name of the instance of the connectivity service |
| options.uaa_instance | string | name of the instance of the uaa service |
| options.destination_instance | string | name of the instance of the destination service |
| options.destination_name | string | name of the destination to use |
| options.http_verb | 'GET' \| 'POST' \| 'PUT' \| 'PATCH' \| 'DELETE' \| 'HEAD' \| 'OPTIONS' | HTTP method to use |
| [options.payload] | object | payload for POST, PUT or PATCH |
| [options.formData] | object | mimic a browser for POSTing a form to the destination; implies http verb POST |
| [options.content_type] | string | value for "Content-Type" http header, e.g. "application/json" |
| [options.full_response] | boolean | whether to have the full response (including all headers etc) pass through to the caller (BE -> proxy -> client) |
| [options.tech_error_only] | boolean | get a rejection only if the request failed for technical reasons, so e.g. 404 is considered a valid response |
| [options.binary] | boolean | whether to expect (and deliver) a binary at @param url |
| [options.scc_name] | string | Location ID of the SAP Cloud Connector |
GET, POST, PUT,PATCH,HEAD, DELETE,OPTIONS) per se POST,~~ PUT and PATCH only support a JSON payload.POST now supports both a JSON payload and a form-style ("like a browser") submission:scc_name: '' as a parameter to specify location ID of the SAP Cloud Connector (default: _none_) full_response: true as a parameter to obtain the full response payload, e.g. to get access to response headers tech_error_only: true as a parameter to only get a rejection if the request failed for technial reasons ("as long as it has a status code, it's a valid response") Content-Type of the file and setting binary to true; Buffer useable in writeStreamsJava reference code from https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/313b215066a8400db461b311e01bd99b.html