REST Patch [Not Recommended]
In this article
Overview
You can use the REST Patch Snap to execute an HTTP Patch method on a REST API service endpoint to replace business object resources. If the given resource does not exist, the Snap creates the resource.
Prerequisites
None.
Supported Features
Works in Ultra Tasks. We recommend you to set the batch size to 1.
Limitations and Known Issues
None.
Snap Views
Type | Format | Number of Views | Examples of Upstream and Downstream Snaps | Description |
|---|---|---|---|---|
Input | Document |
|
| Each input document offers details associated with the file on which the patch action must be performed. |
Output | Document |
|
| Each output document contains details associated with the status of the patch operation. If the Snap fails during the operation, it sends an error document containing the error, reason, resolution, and stacktrace to the Error view. For this to happen, however, the error view must be enabled. |
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 while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab:
Learn more about Error handling in Pipelines. | |||
Snap Settings
Field Name | Field Type | Description |
|---|---|---|
Label* | String | Default Value: REST Patch |
Service URL* | URL | Specify the service endpoint URL of REST API. You can provide the URL in one of the following ways:
For example: http://coresnapsqa-v4.s3.us-east-2.amazonaws.com/S3Account/'+encodeURIComponent("Special_char_owner_!3)12.json
For example: 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 hostname in the CNAME must be equal to the bucket name. For example: New URI with CNAME: https://jsmith-sltest.nia3.snaplogic.net/HttpClientTest/test1 Here, the bucket name is jsmith-bucket.nia3.snaplogic.net 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: The Service URL for the REST snap has to 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) using one of the following methods:
We recommend you use the former (encodeURIComponent) method to escape the special characters.
Default Value: N/A |
HTTP Entity | String | Default Value: $ (the HTTP entity data is at the root of the input map data) |
Batch size | Integer | Default Value: N/A |
Show all headers | Checkbox | Default Value: Deselected |
Form Upload | Default Value: N/A | |
Multipart Type | Dropdown list | Choose the type of multipart upload that you want to initiate. The available options are:
|
Multipart Key | String | 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 it depends on the service endpoint. Default Value: file |
Multipart Value | String/Expression | Specify the the file or text to be uploaded. If Multipart Type is FILE, the following are applicable:
If Multipart Type is a TEXT, then
For Text part upload using the Form Upload, the Http Entity and Filename to be used fields are ignored. Default Value: N/A
|
Filename to be used | String | Enter the name that you want to use for the file at the endpoint. Default Value: N/A |
Multipart Content- Type | String | Select the content type headers for the data in the body of the multipart HTTP request. This enables the Snap how to read or interpret the input file . 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
Default Value: N/A |
Trust all certificates | Checkbox | Default Value: Deselected |
Follow redirects | Checkbox | Default Value: Selected |
Query parameters | ||
Query parameter | String | Enter the name of the query parameter. Default Value: N/A |
Query parameter value | String | Enter the value that you want to assign to the parameter. Default Value: N/A |
HTTP Header |
Configuring HTTP headers helps avoid problems in reading or opening files uploaded using the REST Post Snap. Refer to the Troubleshooting section, below, for more information. | |
Key | String | Enter the name of the HTTP header. Default Value: N/A |
Value | String | Enter the value that you want to assign to the HTTP header. Default Value: N/A |
Response entity type | String | 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 to process as expected, you can set the Response entity type to TEXT or BINARY. Default Value: DEFAULT |
Cookie Policy | Dropdown list | Select a Cookie Policy from the following options:
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 |
Read timeout | Integer | Default Value: 900 |
Connection timeout | Integer | Default Value: 30 |
Maximum request attempts | Integer | Default Value: 5 |
Retry request interval | Integer | Specify the time in seconds to wait before retrying the request. Default Value: 3 |
Retry Policy | String | Default Value: Connection 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 a single slash (/). Deselecting this checkbox reverts the Snap to 4.19 Snaplex behavior, where the URL paths were not normalized by default. 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 both URLs are directed to the same endpoint. Hence, 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 checkbox. Default Value: Selected |
Snap Execution | Checkbox | Select one of the following three modes in which the Snap executes:
Default Value: Validate & Execute |
Troubleshooting
Error | Reason | Resolution |
|---|---|---|
Failed to execute HTTP request | Service URL must have a protocol, e.g. http://, https:// You get this error when your service URL does not start with HTTP or HTTPS. | Check the Snap properties. Specifically, check whether your service URL starts with HTTP or HTTPS. |