REST Delete [Not Recommended]

Overview

You can use the REST Delete Snap to delete business object resources using a REST API call.

Note: We highly recommend that you use the HTTP Client Snap instead of REST Snaps to take advantage of the Capabilities of HTTP Client Snap. Learn more about Migrate from REST Snaps to HTTP Client Snap.

Rest Delete Overview

  • Write-type Snap
  • Works in Ultra Tasks when the Batch size is set to 1.

Snap views

View Description Examples of upstream and downstream Snaps
Input Each input document contains the ID of the object to be deleted at the REST API service endpoint.
Output Each output document contains response data from the REST API service endpoint detailing the status of the request.
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:

  • Stop Pipeline Execution Stops the current pipeline execution when an error occurs.
  • Discard Error Data and Continue Ignores the error, discards that record, and continues with the remaining records.
  • Route Error Data to Error View Routes the error data to an error view without stopping the Snap execution.

Learn more about Error handling in Pipelines.

Snap settings

Legend:
  • 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.
Learn more about the icons in the Snap settings dialog.
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 Delete

Example: REST Delete
Service URL String/Expression

Required. Specify the service endpoint URL of REST API. You can provide the URL in one of the following ways:

  • As a JavaScript expression in the expression language.

    http://coresnapsqa-v4.s3.us-east-2.amazonaws.com/S3Account/'+encodeURIComponent("Special_char_owner_!3)12.json")

  • As a plain string enclosed in double quotes.

    "https://www.example.com/slm/webservice/v2.0/defect/%s".replace("%s", $.widget.id)

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.

Example:
  • Previous URI: https://jsmith-bucket.nia3.snaplogic.net.s3.us-west-1.amazonaws.com/HttpClientTest/test1
  • 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:

Note:
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:
  • Use the global function encodeURIComponent on any variables that might contain special characters so that they are encoded properly. For example,
    
    'http://coresnapsqa-v4.s3.us-east-2.amazonaws.com/S3Account/'+encodeURIComponent(_fileName)
  • If you are aware of the code, use the code directly in the Service URL field. For example, http://coresnapsqa-v4.s3.us-east-2.amazonaws.com/S3Account/Special_char_owner_%213%2912.json; where <%213%2912> is the code.

We recommend you use the former (encodeURIComponent) method to escape the special characters.

Default value: N/A

Example: https://www.example.com/slm/webservice/v2.0/defect/%s".replace("%s", $.widget.id)
HTTP entity String/Expression Specify the JSON path to the HTTP entity data in the input map data. Leave this blank if no entity data is sent to the service URL.

Default value: N/A

Example: $response.entity.id
Batch size String The number of documents to be included in a single request. The incoming documents will be accumulated in a list up to the defined batch size before it is submitted to the endpoint
Note: Set the batch size only if your REST endpoint expects a list.

Default value: N/A

Example: 50
Show all headers Checkbox The REST endpoint may return a response with multiple headers with the same header name.
  • If this property is deselected, only one response header will be shown in the output document.
  • If selected, the response header displays all the response header values received as a list of objects.
Note: If any of these objects has a key-value format, it is parsed into the map data.

Default value: Deselected

Trust all certificates Checkbox

Required. 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 (301, 302 responses).
  • If you select this checkbox, the Snap receives a redirect response, such as a 301 or 302 response code, it sends another request to the URL specified in the response Location header.
  • If you deselect this checkbox, the Snap does not make another request, and the 301/302 response appears in the output view.

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
  • Query Parameter value
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). If you want to specify only content-type headers, you can configure the Multipart Content-Type property instead. This field set comprises the following fields:
  • Key
  • Value
Key String Specify the name that you want to use for the HTTP header.

Default value: N/A

Example: User-Agent
Value String/Expression Specify the value that you want to assign to the HTTP header.

Default value: N/A

Example: SnapLogic
Response entity type Dropdown list

Select one of the following response entity types you want the Snap to display in the output document.:

  • DEFAULT - Select this option to enable the Snap to process the response automatically. The response entity is processed automatically based on the Content-Type header in the response. If the content provided does not parse with the provided Content-Type, the snap will result in an error.

    The following two scenarios describe the Snap’s behavior when using the Process Array checkbox:

    • When you select the Process Array checkbox, the Snap parses JSON or XML and produces a stream of documents at the output view.
    • When you deselect the Process Array checkbox, the Snaps sends the data as it is at the output view.
  • TEXT - Select this option to enable, the Snap to produce an entity of string type.
  • BINARY - Select this option to enable the Snap to produce an entity of byte array type.
Note: 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

Example: TEXT
Cookie Policy Dropdown list Select a Cookie Policy from the following options:
  • Browser Compatibility: This policy is compatible with different servers even if they are not completely standards-compliant. If you are facing issues while parsing cookies, you should try using this policy.
  • Ignore Cookies: This cookie policy ignores all cookies. You should use this policy to prevent HTTP Client from accepting and sending cookies.
  • RFC Strict: This policy uses the set-cookie header.
  • RFC Lax: The policy uses set-cookie and set-cookie2 for parsing.
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:
  • In some cases, the request does not return, such as during network issues. For those a timeout can be configured to allow failing fast.
  • Every Snap instance can have its own timeout settings.
  • The Snap will execute five retries within a couple of seconds back-off time before it fails.

Default value: 900

Example: 45
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 time in seconds to wait before retrying the request.

Default value: 3

Example: 10
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, wherein the 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
Choose one of the three modes in which the Snap executes. Available options are:
  • Validate & Execute: Performs limited execution of the Snap and generates a data preview during pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during pipeline runtime.
  • Execute only: Performs full execution of the Snap during pipeline execution without generating preview data.
  • Disabled: Disables the Snap and all Snaps that are downstream from it.
Example: Validate and Execute

Troubleshooting

Batch execution failed

Reason: The Pipeline ended before the batch could complete execution due to a connection error.

Resolution: Verify that the Batch size field is configured to handle the inputs properly. If you are not sure when the input data is available, configure this field as zero to keep the connection always open.

The provided URI is invalid

Reason: Illegal character in scheme name.

Resolution: Verify the URI and parameters that you provide are syntactically correct.

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.

Example

Create and Delete an Account in SnapLogic Using REST Snaps