REST Put [Not Recommended]
Overview
You can use the REST Put Snap to replace business object resources. If the business object does not exist, the Snap creates the objects

Write-type Snap
Works in Ultra Tasks
Snap views
| View | Description | Examples of upstream and downstream Snaps |
|---|---|---|
| Input | Each input document offers details associated with the data that must be posted to the target RESTful server. | |
| Output | Each output document contains details related to the business objects impacted as a result of Snap execution. | |
| Error |
Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter when running the pipeline by choosing one of the following options from the When errors occur list under the Views tab. The available options are:
Learn more about Error handling in Pipelines. |
|
Snap settings
- Expression icon (
): Allows using JavaScript syntax to access SnapLogic Expressions to set field values dynamically (if enabled). If disabled, you can provide a static value. Learn more.
- SnapGPT (
): Generates SnapLogic Expressions based on natural language using SnapGPT. Learn more.
- Suggestion icon (
): Populates a list of values dynamically based on your Snap configuration. You can select only one attribute at a time using the icon. Type into the field if it supports a comma-separated list of values.
- Upload
: Uploads files. Learn more.
| Field / Field set | Type | Description |
|---|---|---|
| Label | String | Specify a name for the Snap. You can modify this to be more
specific, especially if you have more than one of the same Snap in
your pipeline. Default value: REST Put Example: REST Put |
| Service URL | String/Expression |
Required. Specify the service endpoint URL of
REST API. You can provide the URL in one of the following ways:
For Snaps using AWS Signature V4 accounts, you can use the canonical name (CNAME) for the URI so it's not necessary for the URL to end with amazonaws.com or have the region and service provided in it. However, if you are using the CNAME you must provide it in the AWS Region and Service Name fields in the AWS Signature V4 account. The host name in the CNAME must be equal to the bucket name. For example:
Here, the bucket name is
The Snap finds the value at the JSON path $.widget.id in the input data and replaces "%s" in the Service URL with the value. You can connect File Reader and JSON Parser Snaps upstream of a REST Put Snap and prepare the following JSON file for the File Reader Snap: Note:
The Service URL for a REST snap must be valid. If the Service URL contains any special characters, such as !, =, %21, $, and ^, the Snap throws an exception error. You can escape the special characters (using expression language) with one of the following methods:
We recommend that you use the encodeURIComponent method to escape the special characters. Default value: N/A Example: https://elastic.snaplogic.com/api/1/rest/public/runtime/snaplogic?start=1430377200000&end=1430420399000 |
| HTTP Entity | String | Enter the JSON path to the HTTP entity data in the input Map
data, or leave this field empty if there is no entity data to send
to the service URL. Default value: $ (the HTTP entity data is at the root of the input map data) Example: $.entity (if the HTTP entity data is the value of the "entity" key at the root of the input map data) |
| Batch size | Integer | Specify the batch size of the request. The incoming documents
will be accumulated in a list up to the defined batch size before it
is submitted to the endpoint. Note: Make sure to set the batch size
only if your REST endpoint expects a list. Default value: N/A Example: 20 |
| Show all headers | Checkbox | Select this checkbox to display the response header values as a
list of objects in the output document. If any of these objects is a
string in format "key1=value1; key2=value2; ...", it is parsed into
a map data. The REST endpoint might return HTTP response with
multiple headers with same header name.If you do not select this
checkbox, only one response header is shown in the output document.
Default value: Deselected |
| Upload transfer request type | Dropdown list | Choose the type of encoding that you want to use to safely
transfer the entity to the user. The available options are:
Default value: Chunked transfer encoding Example: Calculate content length |
| Form Upload | Use this field set to
configure the fields required to upload multiple files and text.
Learn more about Multipart Upload. By default, the Snap Settings
display the fields required to upload a file. Click the
Add icon to add new rows for adding file
or text. This field set contains the following fields:
Note: Multiple file upload settings work similarly across the
REST Post, Patch, and Put Snaps. To see an example of these
settings in action. Default value: FILE Example: TEXT |
|
| Multipart Type | Dropdown list |
Choose the type of multipart upload that you want to initiate. The available options are:
Default value: FILE Example: TEXT |
| Multipart Key | String/Expression | Specify the key required for the multi-part to upload a file or
text as required. HTTP POST uses multi-part entity to achieve the
form upload. The form data of its multi-part entity contains
key-value pairs. Multipart Key can be anything and depends on the
service endpoint. This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Pipeline Properties. Default value: file Example: file, initial_comments, channels |
| Multipart Value | String/Expression | Specify the file or text to be uploaded. If Multipart Type is FILE, the following are applicable:
If Multipart Type is TEXT:
Note: For Text part upload using Form Upload, the HTTP Entity
and Filename to be used fields are ignored. Default value: N/A Example: FILE: persons.csv, TEXT: “sldb://file.txt”, “sampletext” |
| Filename to be used | String/Expression |
Specify the name that you want to use for the file at the endpoint. This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Pipeline Properties. Default value: N/A Example: NewFile.csv |
| Multipart Content-Type | String/Suggestion |
Select the content type headers for the data in the body of the multipart HTTP request. The available options are:
If the Multipart Type is TEXT, it is generally not required to specify any value in this field. When you do not specify any value, the API uses the default value text/plain; charset=UTF-8. To specify other HTTP headers, configure the headers in the HTTP Header field set. If you configure both Multipart Content-Type and HTTP Header fields, the value in Multipart Content-Type gets precedence. Default value: N/A Example: text/csv |
| Trust all certificates | Checkbox |
Select this checkbox to trust all certificates, such as self-signed certificates. Default value: Deselected |
| Follow redirects | Checkbox |
Select this checkbox to enable the Snap to follow redirects.
Default value: Selected |
| Query parameters | Use this field set to
add query parameters to your request. This field set comprises the
following fields:
|
|
| Query parameter | String |
Specify the name (or key) of the query parameter. Default value: N/A Example: oauth2_access_token |
| Query parameter value | String/Expression |
Specify the value associated with the query parameter. Default value: N/A Example: $account.access_token |
| HTTP Header | Use this field set to
create the HTTP header key-value pairs required for defining the
headers for different types of input (JSON, PDF, DOCX, and so on).
This field set comprises the following fields:
Configuring HTTP headers helps avoid problems in reading or opening files uploaded using the REST Post Snap. |
|
| Key | String/Expression |
Specify the name of the HTTP header. This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Pipeline Properties. Default value: N/A Example: Content-Type |
| Value | String/Expression |
Specify the value of the HTTP header. This property is expression-enabled. For more information, see Understanding Expressions in SnapLogic and Pipeline Properties. Default value: N/A Example: application/json |
| Response entity type | Dropdown list |
Select one of the following response entity types you want the Snap to display in the output document:
If you select TEXT or BINARY, the Snap does not parse the entity content. If you select DEFAULT, the Snap produces the expected result in most cases, but if it fails, you can set the Response entity type to TEXT or BINARY. Default value: DEFAULT Example: TEXT |
| Cookie Policy | Dropdown list |
Select a Cookie Policy from the following options:
Note: When using a cookie policy, you must select Show All
Headers checkbox to view the parsed cookies from the
cookie policy specification.
Default value: Ignore Cookies Example: RFC Strict |
| Read timeout | Integer |
Specify the number of seconds for which the Snap waits before aborting the request due to a failure to read from the target service. Note:
Default value: 900 Example: 1000 |
| Connection timeout | Integer | Specify the number of seconds for which the Snap waits before
aborting the request due to a failure to establish a connection to
the target endpoint or service. Default value: 30 Example: 45 |
| Maximum request attempts | Integer | Specify the maximum number of attempts that the Snap must make
to receive a response. If the attempts do not result in a response,
the Snap terminates the request. Default value: 5 Example: 3 |
| Retry request interval | Integer | Specify the interval (in seconds) between two successive
requests. A retry happens only when the previous attempt failed.
Default value: 3 Example: 10 |
| Retry Policy | Dropdown list | Select how you want to handle connection and error responses
from the following options:
Default value: Connection errors Example: All errors |
| Normalize URL | Checkbox | Select this checkbox to normalize the Service URL. This enables
the Snap to convert double slashes (//) in the URL path to single
slash (/). For example: https://example.com/path//to//file is converted to https://example.com/path/to/file. Deselecting this checkbox reverts the Snap to 4.19 Snaplex behavior, where URL paths were not normalized by default. Note:
In the 4.20 Release, due to the HTTP client upgrade the URL paths were normalized by default. Hence, there was a change in behavior in handling the URL paths in 4.20 release when compared to 4.19. This change in behavior should not impact the existing Pipelines, because most of the websites map URL paths with double or single slashes to the same endpoint. For example, https://snaplogic.com/company/diversity and https://snaplogic.com//company//diversity direct to the same endpoint. Therefore, we recommend you to select the Normalize URL checkbox. However, an exception to this is when you use non-standard URLs that differentiate the URL paths containing double slashes from those with single slashes and map them to different endpoints, in which case you must deselect Normalize URL check box. For example, http://host/pages/foo.html and http://host/pages//foo.html point to different URIs, and servers assign different meanings to them. Default value: Selected Example: Deselected |
| Snap execution | Dropdown list | Select one of the following three modes in which the Snap executes:
Default value: Validate & Execute Example: Validate & Execute |
Troubleshooting
Failed to execute HTTP request
Reason: The Service URL must have a protocol, such as
http:// or https://.
<Service_URL>: Name or service not known.
This basically means that the service URL you entered is not accessible.
Resolution: Please check the Snap properties. Specifically, check your entry in the Service URL field.
Failure: Validation errors: property_map.settings.serviceUrl.value: Could not compile expression: <Service_URL>
Reason: The Snap settings are not correct. Encountered extraneous input ':' at line 1:5; expecting={<EOF>, '||', '&&', '^', '==', '!=', '>', '<', '>=', '<=', '+', '-', '*', '/', '%', '?', 'instanceof', 'in', 'matches', '[', '(', '.', PropertyRef}.
This means that you have turned expressions on () while entering a string
value into the Service URL field.
Resolution: Please fix the Snap configuration and
try executing again. Check expression syntax. Specifically, ensure that your
Service URL is a proper expression; or turn off the expression control
(). For more
information, see Understanding Expressions in
SnapLogic.
HTTP entity: <string_in_HTTP entity field> is undefined
Reason: Either there is an error in the value in the HTTP entity field, or you have used string input while having expressions enabled.
Resolution: Check the spelling of the variable. Also, check whether your HTTP entity entry requires expressions. Update Snap settings as appropriate.
REST API service endpoint returned error result: status code = 400
Reason: Reason phrase = BAD REQUEST, refer to the error_entity field in the error view document for more details.
You typically see this message when:
- The value in the HTTP entity field is structured as an expression, but the expression toggle is off.
- The value in the (single- or multiple-file-upload) File Key fields is inaccurate or does not contain expressions even though the Expression toggle is enabled.
- The value in the (single- or multiple-file-upload) File Name fields contains special characters, such as
(&, ^, and %).
Resolution: Please check the values of Snap properties. Specifically:
- Check whether your HTTP entity entry requires expressions. Update Snap settings as appropriate.
- Check the value in the (single- or multiple-file-upload) File Key fields.
- Check the value in the (single- or multiple-file-upload) Filename to be used fields.
File not found: <File URL>
Reason: File not found on <server URL> at <complete address of file to be uploaded>.
Resolution: Address the reported issue. Check the location of the file to be uploaded.
Single file upload: <Name of field>: <name of file> is undefined
Reason: The value is null. Check the spelling of the variable. Specifically,
check whether the expressions toggle is turned on even though it is not required.
REST API service endpoint returned error result: status code = 409
Reason: CONFLICT, refer to the error_entity field in the error view document for more details. This happens when you already have the resource that you want to create in the target endpoint.
Resolution: Check the values of Snap properties.
URL Parse Exception - 403
Reason: The Service URL path might be containing any of the following special characters: !, =, %, #, $, ^&()_¢äâêîôûñç¡¿ÉÙËǨ°¸ðø©¢¾A+²½µ®§÷¶þ
Resolution: To escape the special characters, use the global function encodeURIComponent on any variables that might contain special characters so that they are encoded properly.
Too many Requests - 429
Reason: There are too many requests to REST endpoint.
Resolution: Wait for the retry to succeed. REST-related Snaps extract the response header and automatically retry when they encounter status 429.
By default, the retry interval (Retry-After) is specified in the HTTP response header. If no value is available for Retry-After, then the Snap’s Retry Interval value is used.
Examples
Add members to SnapLogic groups