The standard BaaS is used to hit JSON based HTTP endpoints. For example:
{
"Alias": "phoneNumberValidate",
"Body": {},
"Endpoint": "https://password-reset.herokuapp.com/validatePhoneNumber",
"Headers": {
"Authorization": "************************",
"Content-Type": "application/json"
},
"Method": "POST",
"RequestMapping": {
"telephoneNumber": {
"inputPath": "$.telephoneNumber",
"requestBodyPath": "$.telephoneNumber",
"type": "requestBody"
}
},
"ResponseMapping": {
"telephoneNumber": {
"outputPath": "$.telephoneNumber",
"responseBodyPath": "$.telephoneNumber",
"type": "responseBody"
}
},
"RestrictionGroup": "12345678-1234-1234-1234-123456789012" //optional, see Restriction Groups
}
*Note If you wish to send basic authentication, you will need to create your id/token secret in the Secret Vault, and include this in your Request Mappings. For example:
"security": {
"type": "requestBasicAuth",
"secret": "srn:vault::acme:secretdoc:twiliobasicauth"
},
Substitute the org/token values above to correspond with your token.
This BaaS will hit the endpoint called out in the Endpoint
parameter with a POST from the Method
parameter. The Authorization
and Content-Type
headers will be added to the request and the RequestMapping
and ResponseMapping
will work per the next section of this document.
When using the application/x-www-form-urlencoded Content-Type
in your Headers
, you can specify all of your parameters in the Endpoint
using the requestURL
type in your RequestMapping
{
"Method": "POST",
"Endpoint": "https://httpbin.org/post?keyone=${keyone}&keytwo=${keytwo}",
"Headers": {
"Content-Type": "application/x-www-form-urlencoded"
},
"Alias": "urlencodedUsingRequestUrl",
"RequestMapping": {
"keyoneEntry": {
"inputPath": "$.keyone",
"requestParameter": "keyone",
"type": "requestURL"
},
"keytwoEntry": {
"inputPath": "$.keytwo",
"requestParameter": "keytwo",
"type": "requestURL"
}
},
"ResponseMapping": {
},
"Type": "api-connector",
"Body": {}
}
Alternatively if you have a lot of request parameters and don’t want to build up a large Endpoint
manually, you can specify a base Endpoint
, and pass in key, value pairs to the body using the requestBody
type in your RequestMapping
.
{
"Method": "POST",
"Endpoint": "https://httpbin.org/post",
"Headers": {
"Content-Type": "application/x-www-form-urlencoded"
},
"Alias": "urlencodedUsingRequestBody",
"RequestMapping": {
"keyoneEntry": {
"inputPath": "$.keyone",
"requestBodyPath": "$.keyone",
"type": "requestBody"
},
"keytwoEntry": {
"inputPath": "$.keytwo",
"requestBodyPath": "$.keytwo",
"type": "requestBody"
}
},
"ResponseMapping": {
},
"Type": "api-connector",
"Body": {}
}