Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

On this Page

Table of Contents
maxLevel2
excludeOlder Versions|Additional Resources|Related Links|Related Information

Snap type:

Write


Description:

This Snap provides the functionality to execute the HTTP Delete method to a REST API service endpoint to delete business object resources.


Prerequisites:

None


Support and limitations:
  • Ultra pipelines: Works in Ultra Pipelines if a  if batching is disabled and timeout is specified.
  • Spark mode: Not supported in Spark mode.


Account: 

This Snap uses account references created on the Accounts page of SnapLogic Manager to handle access to this endpoint. See REST Account for information on setting up this type of account. 

The Snap supports an optional REST Basic Auth Account or REST Oauth2 Account. In the case of using an REST OAuth2 Account instance, one can access the token of the account through account.access_token explicitly. The property then needs to be marked as an expression. An example URL for LinkedIn is: "https://api.linkedin.com/v1/people/~?oauth2_access_token=" + account.access_token

Views:


InputThis Snap has at most one document input view. Each document contains the ID of the object to be deleted at the REST API service endpoint.
OutputThis Snap has at most one document output view. Each document contains response data from the REST API service endpoint.
ErrorThis Snap has at most one document error view and produces zero or more documents in the view. Each document contains the input data which have caused failure and the response from the REST API service endpoint.


Settings

Label


Required. The 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.

Service URL 

Required. The service endpoint URL of REST API.

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

The Snap will look for the value at the JSON path "$.widget.id" in the input data and replace "%s" in the Service URL with the value. You may connect a File Reader and JSON Parser Snaps in front of REST Delete Snap and prepare the following JSON file to File Reader Snap:

Code Block
 [
                        { "widget": { "id": "111", "name": "foo" } }
                        { "widget": { "id": "555", "name": "bar" } }
                    ]

                    "https://www.example.com/slm/webservice/v2.0/defect/555"

            

Default value: [None]


HTTP entity


The JSON path to the HTTP entity data in the input Map data, or leave this property empty if there is no entity data to send to the service URL.
Example$.entity (if the HTTP entity data is the value of the "entity" key at the root of the input Map data)
Default value$ (the HTTP entity data is at the root of the input Map data)  


Batch size


Defines 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. Make sure to only set this if your REST endpoint expects a list.

Default value: None


Show all headers


REST endpoint may return HTTP response with multiple headers with same header name. If this property is not selected,  only one response header will be shown in the output document. If selected, the response header values are a list of objects. If any of these objects is a string in format  "key1=value1; key2=value2; ...", it is parsed into a map data.

Default value: Not selected


Trust all certificates


Required. Trust all certificates, such as self-signed certificates.

Default value: Not selected


Follow redirects


Required. When selected, HTTP redirects will be followed.
Example: When selected, if a redirect response (e.g. a 301 or 302 response code) is received, another request to the URL specified in the Location header will be automatically made.
When not selected, another request will not be made and the 301/302 response will show up in the output view.
Default value: Selected


Query parameters


Lets you define query parameters. This is optional and can either be defined directly in the service URL, as separate parameters or both. 
Example:               

 Query parameter Query parameter value  
 oauth2_access_token $account.access_token


HTTP header

HTTP header key-value pairs

Example:

Key Value
 Content-Type application/json;charset=UTF-8
 User-Agent SnapLogic

Default value: [None]


Response entity type


This property allows you to select the response entity type in the output document. The available options include:

  • DEFAULT - If selected, the response entity is processed automatically. The Snaps attempts to convert the entity to a string or a byte array depending on the response headers.
  • TEXT - If selected, the Snap produces an entity of string type.
  • BINARY - If selected, the Snap produces an entity of byte array type.


Note
If TEXT or BINARY is selected, the Snap will not attempt to parse the entity content. If DEFAULT is selected, the Snap produces the expected result in most cases, but when failed to do so, users may set the Response entity type to TEXT or BINARY.

Default value: DEFAULT 


Read timeout

The time in seconds to wait before aborting the request due to a failure to read from the target service. This option lets you specify a timeout value in seconds after which the request gets aborted. 

Default value: 900 seconds.

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. 


Connection timeout

The time in seconds to wait before aborting the request due to a failure to establish a connection to the target service.

Default value: 30

Maximum request attempts 


Specifies the maximum number of attempts to be made to receive a response. The request is terminated if the attempts do not result in a response. 

Example: 3

Default value: 5


Retry request interval


Specifies the interval (in seconds) between two successive requests. A retry happens only when the previous attempt resulted in an exception. 

Example:  10

Default value: 3


Multiexcerpt include macro
nameSnap Execution
pageSOAP Execute


Multiexcerpt include macro
nameExecution_Detail_Write
pageSOAP Execute

 Example



The REST Delete Snap in the above example pipeline deletes the JIRA issue created and updated in the preceding Snaps in the pipeline. 

The following JSON data is the input document to the Snap:

Code Block
titleInput Data
collapsetrue
{
    "headers": {
      "strict-transport-security": "max-age=315360000;includeSubdomains",
      "x-content-type-options": "nosniff",
      "vary": "Accept-Encoding",
      "x-seraph-loginreason": "OK",
      "connection": "keep-alive",
      "set-cookie": "atlassian.xsrf.token=BWCK-SR48-JN93-ESFC|1640969cad157d3859fba4971c79e09b38f27b21|lin; Path=/; Secure",
      "transfer-encoding": "chunked",
      "content-type": "application/json;charset=UTF-8",
      "date": "Thu, 15 Jan 2015 18:49:02 GMT",
      "x-arequestid": "649x1344x1",
      "x-asen": "SEN-2848532",
      "x-asessionid": "1nuotcy",
      "cache-control": "no-cache, no-store, no-transform",
      "x-ausername": "admin",
      "server": "nginx"
    },
    "statusLine": {
      "reasonPhrase": "OK",
      "statusCode": 200,
      "protoVersion": "HTTP/1.1"
    },
    "entity": {
      "expand": "renderedFields,names,schema,transitions,operations,editmeta,changelog",
      "id": "17392",
      "self": "https://Snaplogic.atlassian.net/rest/api/2/issue/17392",
      "key": "JIRASNAP-4312",
      "fields": {
        "issuetype": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/issuetype/2",
          "id": "2",
          "description": "A new feature of the product, which has yet to be developed.",
          "iconUrl": "https://Snaplogic.atlassian.net/images/icons/issuetypes/newfeature.png",
          "name": "New Feature",
          "subtask": false
        },
        "timespent": null,
        "project": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/project/10000",
          "id": "10000",
          "key": "JIRASNAP",
          "name": "Jira Snap for SnapLogic 4.0",
          "avatarUrls": {
            "48x48": "https://Snaplogic.atlassian.net/secure/projectavatar?pid=10000&avatarId=10011",
            "24x24": "https://Snaplogic.atlassian.net/secure/projectavatar?size=small&pid=10000&avatarId=10011",
            "16x16": "https://Snaplogic.atlassian.net/secure/projectavatar?size=xsmall&pid=10000&avatarId=10011",
            "32x32": "https://Snaplogic.atlassian.net/secure/projectavatar?size=medium&pid=10000&avatarId=10011"
          }
        },
        "fixVersions": [],
        "aggregatetimespent": null,
        "resolution": null,
        "customfield_10500": null,
        "customfield_10501": null,
        "resolutiondate": null,
        "workratio": -1,
        "lastViewed": null,
        "watches": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/issue/JIRASNAP-4312/watchers",
          "watchCount": 1,
          "isWatching": true
        },
        "created": "2015-01-15T10:48:57.605-0800",
        "customfield_10020": null,
        "customfield_10021": "Not Started",
        "customfield_10100": null,
        "priority": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/priority/3",
          "iconUrl": "https://Snaplogic.atlassian.net/images/icons/priorities/major.png",
          "name": "Major",
          "id": "3"
        },
        "customfield_10101": null,
        "customfield_10300": "0|1009kw:",
        "labels": [],
        "customfield_10016": null,
        "customfield_10017": null,
        "customfield_10018": null,
        "customfield_10019": null,
        "timeestimate": null,
        "aggregatetimeoriginalestimate": null,
        "versions": [],
        "issuelinks": [],
        "assignee": null,
        "updated": "2015-01-15T10:49:00.553-0800",
        "status": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/status/10001",
          "description": "",
          "iconUrl": "https://Snaplogic.atlassian.net/images/icons/statuses/open.png",
          "name": "To Do",
          "id": "10001",
          "statusCategory": {
            "self": "https://Snaplogic.atlassian.net/rest/api/2/statuscategory/2",
            "id": 2,
            "key": "new",
            "colorName": "blue-gray",
            "name": "To Do"
          }
        },
        "components": [],
        "timeoriginalestimate": null,
        "description": "Create, update and delete JIRA issues using the JIRA Create, Put and Delete Snaps",
        "customfield_10012": null,
        "customfield_10013": null,
        "customfield_10014": null,
        "customfield_10015": null,
        "timetracking": {},
        "customfield_10007": null,
        "customfield_10008": null,
        "attachment": [],
        "aggregatetimeestimate": null,
        "summary": "Test JIRA Snaps (create/update/delete a Jira issue)",
        "creator": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/user?username=admin",
          "name": "admin",
          "key": "admin",
          "emailAddress": "pnarayan@Snaplogic.com",
          "avatarUrls": {
            "48x48": "https://Snaplogic.atlassian.net/secure/useravatar?avatarId=10122",
            "24x24": "https://Snaplogic.atlassian.net/secure/useravatar?size=small&avatarId=10122",
            "16x16": "https://Snaplogic.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122",
            "32x32": "https://Snaplogic.atlassian.net/secure/useravatar?size=medium&avatarId=10122"
          },
          "displayName": "Snap admin [Administrator]",
          "active": true,
          "timeZone": "America/Los_Angeles"
        },
        "subtasks": [],
        "reporter": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/user?username=admin",
          "name": "admin",
          "key": "admin",
          "emailAddress": "pnarayan@Snaplogic.com",
          "avatarUrls": {
            "48x48": "https://Snaplogic.atlassian.net/secure/useravatar?avatarId=10122",
            "24x24": "https://Snaplogic.atlassian.net/secure/useravatar?size=small&avatarId=10122",
            "16x16": "https://Snaplogic.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122",
            "32x32": "https://Snaplogic.atlassian.net/secure/useravatar?size=medium&avatarId=10122"
          },
          "displayName": "Snap admin [Administrator]",
          "active": true,
          "timeZone": "America/Los_Angeles"
        },
        "customfield_10000": null,
        "aggregateprogress": {
          "progress": 0,
          "total": 0
        },
        "customfield_10001": null,
        "customfield_10002": null,
        "customfield_10200": null,
        "customfield_10003": null,
        "customfield_10400": null,
        "environment": null,
        "duedate": null,
        "progress": {
          "progress": 0,
          "total": 0
        },
        "comment": {
          "startAt": 0,
          "maxResults": 1,
          "total": 1,
          "comments": [
            {
              "self": "https://Snaplogic.atlassian.net/rest/api/2/issue/17392/comment/15458",
              "id": "15458",
              "author": {
                "self": "https://Snaplogic.atlassian.net/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "pnarayan@Snaplogic.com",
                "avatarUrls": {
                  "48x48": "https://Snaplogic.atlassian.net/secure/useravatar?avatarId=10122",
                  "24x24": "https://Snaplogic.atlassian.net/secure/useravatar?size=small&avatarId=10122",
                  "16x16": "https://Snaplogic.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122",
                  "32x32": "https://Snaplogic.atlassian.net/secure/useravatar?size=medium&avatarId=10122"
                },
                "displayName": "Snap admin [Administrator]",
                "active": true,
                "timeZone": "America/Los_Angeles"
              },
              "body": "Bug has been fixed.",
              "updateAuthor": {
                "self": "https://Snaplogic.atlassian.net/rest/api/2/user?username=admin",
                "name": "admin",
                "key": "admin",
                "emailAddress": "pnarayan@Snaplogic.com",
                "avatarUrls": {
                  "48x48": "https://Snaplogic.atlassian.net/secure/useravatar?avatarId=10122",
                  "24x24": "https://Snaplogic.atlassian.net/secure/useravatar?size=small&avatarId=10122",
                  "16x16": "https://Snaplogic.atlassian.net/secure/useravatar?size=xsmall&avatarId=10122",
                  "32x32": "https://Snaplogic.atlassian.net/secure/useravatar?size=medium&avatarId=10122"
                },
                "displayName": "Snap admin [Administrator]",
                "active": true,
                "timeZone": "America/Los_Angeles"
              },
              "created": "2015-01-15T10:49:00.550-0800",
              "updated": "2015-01-15T10:49:00.550-0800"
            }
          ]
        },
        "votes": {
          "self": "https://Snaplogic.atlassian.net/rest/api/2/issue/JIRASNAP-4312/votes",
          "votes": 0,
          "hasVoted": false
        },
        "worklog": {
          "startAt": 0,
          "maxResults": 20,
          "total": 0,
          "worklogs": []
        }
      }
    },
    "original": {
      "response": {
        "headers": {
          "strict-transport-security": "max-age=315360000;includeSubdomains",
          "x-content-type-options": "nosniff",
          "x-seraph-loginreason": "OK",
          "connection": "keep-alive",
          "set-cookie": "atlassian.xsrf.token=BWCK-SR48-JN93-ESFC|c127207e6dcb6f113eb45ec4d1dc463829af8dc2|lin; Path=/; Secure",
          "content-type": "application/json;charset=UTF-8",
          "date": "Thu, 15 Jan 2015 18:49:00 GMT",
          "x-arequestid": "648x1343x1",
          "x-asen": "SEN-2848532",
          "content-length": "0",
          "x-asessionid": "1g8lldp",
          "cache-control": "no-cache, no-store, no-transform",
          "x-ausername": "admin",
          "server": "nginx"
        },
        "statusLine": {
          "reasonPhrase": "No Content",
          "statusCode": 204,
          "protoVersion": "HTTP/1.1"
        },
        "entity": null
      },
      "original": {
        "id": "17392",
        "update": {
          "comment": [
            {
              "add": {
                "body": "Bug has been fixed."
              }
            }
          ]
        }
      }
    }
  }



The following JSON data is the output provided by the Snap:

 {
    "response": { "headers": { "strict-transport-security": "max-age=315360000;includeSubdomains", "x-content-type-options": "nosniff", "x-seraph-loginreason": "OK", "connection": "keep-alive", "set-cookie": "atlassian.xsrf.token=BWCK-SR48-JN93-ESFC|c127207e6dcb6f113eb45ec4d1dc463829af8dc2|lin; Path=/; Secure", "content-type": "application/json;charset=UTF-8", "date": "Thu, 15 Jan 2015 18:49:00 GMT", "x-arequestid": "648x1343x1", "x-asen": "SEN-2848532", "content-length": "0", "x-asessionid": "1g8lldp", "cache-control": "no-cache, no-store, no-transform", "x-ausername": "admin", "server": "nginx" }, "statusLine": { "reasonPhrase": "No Content", "statusCode": 204, "protoVersion": "HTTP/1.1" }, "entity": null },
    "original": { "id": "17392", "update": { "comment": [ { "add": { "body": "Bug has been fixed." } } ] } } }

Pipeline Downloads

Attachments
patterns.*slp

Insert excerpt
REST Snap Pack
REST Snap Pack
nopaneltrue