REST Post

In this article

Overview


We recommend that you use the HTTP Client Snap instead of Snaps from the REST Snap Pack to connect to REST-based APIs and applications.

You can use the REST Post Snap to to execute the HTTP Post method on a REST API service endpoint to create business object resources. The Snap also assigns a new URI to every business object that it creates. and returns this URI in the output view.

Prerequisites

None.

Supported Features

Works in Ultra Pipelines. We recommend you to set the batch size to 1.

Limitations and Known Issues

None.

Snap Views

TypeFormatNumber of ViewsExamples of Upstream and Downstream SnapsDescription
Input Document
  • Min: 0
  • Max: 1
  • Mapper
  • Script
  • Router
Each input document offers details associated with the data that must be posted to the target RESTful server.
OutputDocument
  • Min: 0
  • Max: 1
  • JSON Splitter
  • JSON Formatter
  • Join

Each output document contains details associated with the outcome of the Post 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 while running the Pipeline by choosing one of the following options from the When errors occur list under the Views tab:

  • Stop Pipeline Execution: Stops the current pipeline execution when the Snap encounters an error.

  • 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

Field NameField TypeDescription

Label*


DefaultValue
REST Post
Example
Upload New Files

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.
Service URL*String/Expression

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

  • As a JavaScript expression in expression language.

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

  • As a plain string that you should enclose in double quotes ("").

For example: "https://www.example.com/slm/webservice/v2.0/defect/%s".replace("%s", $.widg et.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.

For 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:

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.

HTTP Entity


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)

String/Expression

Specify the JSON path to the HTTP entity data in the input map data. You can leave this field blank if there is no entity data to send to the service URL.

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.

Batch size


DefaultValue: N/A
Example
: 20

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

Make sure to set the batch size only if your REST endpoint expects a list.

Show all headers


Default Value: Deselected
Example: N/A

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.

If any of these objects has a key-value format, it is parsed into the map data.

Single file upload: File


DefaultValue: N/A
Example:
 persons.csv

String/Expression

Specify the path of the file to be uploaded.

  • The file protocols supported are 'sldb:///' and 'file:///'.
  • If this property is a relative path, it is considered an SLDB file.
  • If this field is not empty, HTTP entity and Batch size properties are ignored and the Upload-file key property is required.
  • If this property is an expression, the input document is used to evaluate the expression. Each input document invokes one file upload.
  • This property does not support wildcard or glob patterns.

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.

Single file upload: File key


DefaultValue:file
Example
seed

String/Expression

Specify the key required for the multi-part form-data needed to upload a file.

HTTP POST uses multi-part entity to achieve the file upload. The form-data of its multi-part entity contains key-value pairs. Upload-file key is dependent of service endpoint.

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.

Single file upload: Filename to be used


DefaultValue
: N/A
Example
NewFile.csv

String/Expression

Specify the name that you want to use for the file being uploaded at the target endpoint. You can retain the original file name by leaving this property blank.

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.

Upload transfer request type


DefaultValueChunked transfer encoding
Example
Calculate content length

Dropdown list

The type of encoding that you want to use to safely transfer the entity to the user. The available options are:

  • Chunked transfer encoding
  • Calculate content length

If Chunked transfer encoding is selected, the header "Transfer-Encoding:chunked" will be added to the POST request, and the Snap uploads the given file in chunked transfer encoding.

If Calculate content length is selected, the file size will be calculated and passed with header "Content-Length" in the POST request.

Chunked transfer encoding can be used if the size of the given file cannot be calculated.

Upload body type


DefaultValueMultipart from-data
Example
Multipart related

Dropdown list

Select the content-type processing for the entity body from the options available:

  • Multipart form-dataSends the configured value of the HTTP entity as a multipart file, with the configured upload file (if not set as blank) sent as a bytes sub-part.
  • Multipart relatedEnables you to post files to the Google Drive API and retain the original names.
  • Binary: Sends either the configured value of the HTTP entity or upload file as a binary entity (as bytes with no multipart information). 


Single file Upload: Multipart Content-Type


DefaultValueapplication/octet-stream
Example
text/csv

String/Suggestion

Select the content type headers for the data in the body of the multipart HTTP request. This is a suggestible field that shows the following suggestions:

  • application/octet-stream
  • text/plain
  • application/json
  • text/csv
  • text/html
  • image/jpeg

  1. To specify other HTTP headers configure the HTTP header property; however content-type headers can also be configured in the HTTP header property.
  2. If both Multipart Content-Type and HTTP header property are configured, the value in Multipart Content-type gets precedence. 

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.

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:

  • Multipart Type

  • Multipart Key

  • Multipart Value

  • HTTP Entity

  • Filename to be used

  • Multipart Content-Type

Multipart Type


Default ValueFILE
Example
: TEXT

Dropdown list

Choose the type of multipart upload that you want to initiate. The available options are:

  • FILE: Use this option to upload a file.

  • TEXT: Use this option to upload text.


Multipart Key
DefaultValuefile
Example
file, initial_comments, channels
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 it depends on the service endpoint.

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.


Multipart Value



Default Value: N/A

Example

String/Expression

Specify the the file or text to be uploaded.

If Multipart Type is FILE, the following are applicable:

  • The file protocols supported for file values are 'sldb:///' and 'file:///'.

  • If the file path is a relative path, it is considered as an SLDB file.

  • If this field is not empty, HTTP Entity and Batch size fields are ignored and the Multipart Key field is required.

  • If the value is an expression, the input document is used to evaluate the expression. Each input document invokes one file upload.

  • This field does not support wildcard or glob patterns.

If Multipart Type is a TEXT, then

  • The value should be expression enabled and enclosed in double quotes.


For Text part upload using Form Upload, the Http Entity and Filename to be used are ignored.

HTTP Entity


DefaultValue: N/A
Example
$.entity

String/Expression

Specify the HTTP entity of the file that you want to upload.


Filename to be used


DefaultValue: N/A
Example
NewFile.csv

String/Expression

Specify the name that you want to use for the file being uploaded at the target endpoint. You can retain the original file name by leaving this property blank.

This property is expression-enabled. For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions. For information on Pipeline Parameters, see Pipeline Properties.


Multipart Content-Type


DefaultValue: N/A
Example
text/csv

String/Suggestion

Select the content type headers for the data in the body of the multipart HTTP request.

The available options are:

  • application/octet-stream

  • text/plain

  • application/json

  • text/csv

  • text/html

  • image/jpeg

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 the Multipart Content-type gets precedence. 

Trust all certificates


DefaultValue: Deselected

N/A

Select this checkbox to trust all certificates, such as self-signed certificates.  

Follow redirects


DefaultValue: Selected

N/A

Select this checkbox to enable the Snap to follow redirects.

  • 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.

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


DefaultValue: N/A
Exampl
e: oauth2_access_token

N/A

Specify the name (or key) of the query parameter.


Query parameter value


DefaultValue: N/A
Example
$account.access_token

N/A

Specify the value associated with the query parameter.


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

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


Default Value: N/A
ExampleContent-Type

String/Expression

Specify the name of the HTTP header.


Value


DefaultValue: N/A
Example
application/json

String/Expression

Specify the value of the HTTP header.


Response entity type


DefaultValueDEFAULT
Example
: TEXT

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.

Cookie Policy


Default Value:Ignore Cookies
Example
RFC Strict

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.

When using a cookie policy, you must select Show All Headers checkbox to view the parsed cookies from the cookie policy specification.

Read timeout


DefaultValue900
Example
1000

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.

  • 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


DefaultValue30
Example
45

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.

Maximum request attempts


DefaultValue
5
Example
3

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.

Retry request interval


DefaultValue
3
Example
10

Integer

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.

Retry Policy


DefaultValue
Connection errors
Example
All errors

Dropdown list

Select how you want to handle connection and error responses from the following options:

  • Connection errors: Occurs when a client fails to establish a secure connection to the server.
  • Connection and auth errors (401/403): Occurs when either the user authorization fails or access to the page/resource is forbidden.
  • Connection and client errors (4xx): Occurs when the request for the resource contains bad syntax, or when the resource is not found (404).
  • Connection and server errors (5xx): Occurs when the server is unable to complete a request.
  • All errors: Applies to all of the above-listed errors.

Normalize URLCheckbox

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 check box reverts the Snap to 4.19 Snaplex behavior, wherein 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 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 ValueSelected
ExampleDeselected

Snap Execution


DefaultValue
:Execute only
Example
:Validate & Execute

Dropdown list

Select 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.



Troubleshooting

ErrorReasonResolution
Failed to execute HTTP requestThe Service URL must have a protocol, such as http://, https://.Please check the Snap properties. Specifically, check your entry in the Service URL field.
<Service_URL>: Name or service not known. This basically means that the service URL you entered is not accessible.
Failure: Validation errors: property_map.settings.serviceUrl.value: Could not compile expression: <Service_URL>

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 string value into the Service URL field.

Please fix the snap configuration and try the execution again. Please check expression syntax. Specifically, ensure that your service URL is a proper expression; or turn off the expression control (). 

For more information on the expression language, see Understanding Expressions in SnapLogic and Using Expressions.

HTTP entity: <string_in_HTTP entity field> is undefined. Perhaps you meant: <List of variables received from the upstream Snap>.Either there is an error in the value in the HTTP entity field, or you have used string input while having expressions enabled.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 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 %).

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>
File not found on <server URL> at <complete address of file to be uploaded>Please address the reported issue. Check the location of the file to be uploaded.
Single file upload: <Name of field>: <name of file> is undefined. Perhaps you meant: <options based on your input>
nullCheck 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 = 409CONFLICT, 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.Please check the values of Snap properties.
URL Parse Exception - 403The Service URL path might be containing any of the following special characters: !, =, %, #, $, ^&()_¢äâêîôûñç¡¿ÉÙËǨ°¸ðø©¢¾A+²½µ®§÷¶þ 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

There are too many requests to REST endpoint.

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

Creating a Jira Issue Using REST Post

This example Pipeline demonstrates how to create a Jira issue using the REST Post Snap.

Initially, we configure the JSON Generator Snap to pass the input. The following JSON data is the input document to the Snap:

The REST Post Snap in this example Pipeline creates a JIRA issue.

Reading a MySQL Table and Writing its Contents to a File Using REST Post

In this example, we use the REST Post Snap to read a table in MySQL and write the contents to a file. It is designed to run against the MySQL sample database sakila, but can be easily adapted to work against any database. This example consists of two Pipelines available in the Download section below:

  • REST_MySql_to_file_1_of_2
  • REST_MySql_to_file_2_of_2

To run the demo:

  1. Download both Pipelines, decompress them, and upload them both into one project in SnapLogic.
  2. Change the MySQL user account in Pipeline 2.
  3. Create a task for Pipeline 2.
  4. Paste the task into the JSON document Snaplex attribute.
  5. Run Pipeline 1. It will create a file in the local project.


This example illustrates the following topics:

  • How to use a REST Post Snap to invoke a "remote service"
  • How to pass document parameters in a REST Post Snap
  • How to convert a pipeline parameter to a document parameter for use in a MySQL where clause
  • How to convert a pipeline parameter from a string to a integer
  • How to use a function to populate a column in a database with the current datetime
  • How to convert a JSON document to a flat csv file.

Uploading Multiple Files Using the REST Post Snap

This example demonstrates how we can upload multiple files using the REST Post Snap. 

Add a REST Post Snap to your pipeline with settings configured as shown below:


To upload multiple files using the REST Post Snap, you need to specify at least the following settings:

  • Service URL: This is the service endpoint URL of the REST API associated with your account.
  • Upload File(s)
    • Upload File Key: Enter file here to specify that you want to upload a file. For uploading messages, you could use the key seed.
    • Upload file: Enter here the location and name of the file you want to upload. In this example, we have uploaded two files, test_data.csv and Dynamics_365 For Sales Read.json.
    • Filename to be used: Enter here the new name of the file. This is the name that will be given to the new file created in the destination directory. In this example, we have named our new files test_data.csv and sales_read.json, respectively.
    • Multipart Content-Type: Enter here the type of the data you want to create. In our example, the first file is text/csv, and the second file is application/json.
  • Click the + button in the HTTP Header fieldset. This adds a row of fields, which you can use to add authorization information required for your request. You can also provide Basic Auth account details instead of using these fields. In this example, we have used HTTP headers.
    • Key: Enter Authorization here. This tells the Snap that the string in the Value field is to be used for authorizing the transaction.
    • Value: Enter the authorization string provided for your account.
  • Select the Execute during preview check box to instruct the Snap to run the pipeline during preview. For a successful execution, the following success message appears:



Click here to download this Pipeline. You can also downloaded this pipeline from the Downloads section below.

Using the REST Post Snap to Add Attachments to Jira Issues

In this example, we use a REST Post Snap to add attachments to a Jira issue.

Download this Pipeline.

You design the Pipeline as shown above. This Pipeline contains the following Snaps:

  1. Creating the Jira Ticket
    1. File Reader: Reads a file containing the details required to create a ticket in Jira.
    2. JSON Parser: Structures the data received from the File Reader Snap as a JSON document.
    3. Mapper: Creates a document containing the data needed to create a Jira ticket, by extracting and mapping data from the incoming document.
    4. JIRA Create: Creates a Jira ticket using the details provided by the Mapper Snap.
  2. Updating the Jira Ticket
    1. Mapper: Creates a document containing the key associated with the record that you want to update.
    2. REST Post: Updates the ticket with the specified attachments.

You configure these Snaps as explained in the sections below:

Creating the Jira Ticket

File Reader

You configure the File Reader Snap to read a JSON file from the SnapLogic File System:

Once the Pipeline is validated, you can view the output of the File Reader:


JSON Parser

You use the JSON Parser Snap to read the structure of the JSON file:

Once the Pipeline validates successfully, you can view the output of the JSON Parser Snap:


You now need to add the details required to specify where the ticket must be created, and to whom it must be assigned. You do this using the Mapper Snap. The Mapper Snap maps the schema of the source document (the JSON Parser Snap's output) with the schema of the target document (the schema of a Jira ticket as propagated backward by the JIRA Create Snap).

Mapper

You configure the Mapper Snap as shown below:

Once fields from the input document are mapped to fields in the Jira ticket schema and the Pipeline is validated, you can view a preview of the output:


JIRA Create

You now have a document containing all the details that you need to create a Jira ticket, and you use the JIRA Create Snap to create the ticket:

Once the ticket is created successfully, you can view the output in the preview:

Updating the Jira Ticket

You just created a Jira ticket, and you can see the ticket ID displayed against the "$key" field in the output preview of the JIRA Create Snap. You can now add attachments to this ticket. You decide to add two images. To do so, you decide to use the Mapper and REST Post Snaps.

Mapper

You configure the Mapper Snap to isolate the Jira ticket number from the output of the JIRA Create Snap:

Once you validate the Pipeline with your latest changes, you can see the output preview of the Mapper Snap, and you can see that only the ticket ID is retained:

REST Post

You configure the REST Post Snap to upload two images as attachments to the identified Jira ticket, accessible through a Service URL:

For a successful upload, the REST Post Snap displays a status code of 200:


You have now successfully created a Jira ticket and added attachments to the ticket.

Download this Pipeline.

Downloads

Important steps to successfully reuse Pipelines

  1. Download and import the pipeline into the SnapLogic application.
  2. Configure Snap accounts as applicable.
  3. Provide pipeline parameters as applicable.

  File Modified

File REST_MySql_to_file_1_of_2.slp

Apr 06, 2017 by Diane Miller

File REST_MySql_to_file_2_of_2.slp

Apr 06, 2017 by Diane Miller

File REST-Post_MultiFile_Example.slp

Jan 08, 2019 by Rakesh Chaudhary

File JIRA_Attachment_with_REST_Example.slp

Apr 20, 2019 by Rakesh Chaudhary

File REST Snap Pack.slp

Nov 18, 2022 by Kalpana Malladi

Snap Pack History

 Click to view/expand

​

Release

Snap Pack Version 

Date

Type

Updates

August 2024

main27765

 

Stable

Upgraded the org.json.json library from v20090211 to v20240303, which is fully backward compatible.

May 2024437patches26522 Latest

Enhanced the REST OAuth2 Account with Snaplex support for executing OAuth2 operations.

May 2024

main26341

 

Stable

Updated and certified against the current SnapLogic Platform release.

February 2024main25112 StableUpdated and certified against the current SnapLogic Platform release.
November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.

August 2023

main22460

 

Stable

Updated and certified against the current SnapLogic Platform release.

February 2023main21015 StableUpgraded with the latest SnapLogic Platform release.
February 2023432patches20054Latest

For Snaps using AWS Signature V4 accounts, DNS canonical names are now supported for S3 buckets. 

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
November 2022main18944 StableUpgraded with the latest SnapLogic Platform release.
September 2022430patches17851 LatestThe REST Post Snap now works without displaying any errors when the Show all headers checkbox is selected and the Content-type is text/xml or application/xml.
August 2022430patches17684 Latest

The REST AWS Sig v4 Account is now enhanced with the AWS Region and Service Name fields that enable the Snap to support Virtual Private Cloud (VPC) endpoint.

August 2022main17386 Stable
  • You can set cookie policy specifications using the Cookie Policy dropdown list in REST Snaps .

  • Support for auto-retries where the REST Snaps automatically retry when they encounter 429 HTTP status code - Too Many Requests error.

  • The REST AWS Sig v4 Account supports:

    • Passing AWS Security Token Service (STS) temporary credentials in the Security Token field.

    • Expression values for Access-key ID and Secret Key fields.

  • Improved the performance of REST Snaps when the Snaps encounter Unauthorized (401) or Forbidden (403) errors even when the user credentials are available in the organization and the account type is OAuth2.

4.29  Patch

429patches17084

 Latest
 Learn more

Cookie Policy: The Cookie Policy to select 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: All servers that handle version 1 cookies should use this policy.

RFC LAX: The original cookie specification which formed the basis for RFC2109.

  • Added a new field Security Token in the REST AWS Sig v4 Account to support AWS Security Token Service (STS) for using temporary credentials.

  • Enhanced the REST AWS Sig v4 Account to support expression values for Access-key ID and Secret Key fields.

4.29  Patch429patches16076 Latest
  • Enhanced the REST Snaps with support for auto-retry where the Snap retries automatically when the Snap encounters 429 HTTP status code - Too many requests error.
  • Improved the performance of REST Snaps when the Snaps encountered errors due to Unauthorized (401) or Forbidden (403) statuses though the user credentials are available in the organization and the account type is OAuth2.
4.29main15993 Stable

Added the REST In-memory OAuth2 Account type with Client Credentials Grant Type that supports and stores the access token in memory for reuse until it expires. When the Snap encounters 401 or 403 errors, this account generates a new token after refreshing the cache.

4.28  Patch428patches15172 Latest

Fixed an issue that caused REST SSL accounts to fail when the username in the REST SSL Account was null and the Enhanced Encryption level was low, medium, or high.

4.28main14627 Stable
  • Enhanced the REST Post, REST Put, and REST Patch Snaps with the Multipart Type list to support multipart (files and text) upload.

  • Renamed the following fields:

    • Upload File(s) field set to Form Upload

    • Upload-file key to Multipart Key

    • Upload file to Multipart Value

4.27 Patch427patches12750 LatestEnhanced the REST Put Snap with the Upload Transfer Request Type field to support encoding of chunked transfer and calculating content length.
4.27main12989Stable and LatestFixed an issue in the REST OAuth2 account that caused a new feature, OAuth Password Grant Type to be excluded from the GA version. The latest deployed build includes this feature.

4.27

main12833

 

Stable

Enhanced REST OAuth2 accounts with a new option password for Grant Type to obtain an access token through user credentials. On selecting password, the Snap populates the Username and Password fields to enter the credentials.
4.26426patches12749Latest

Fixed an issue with the REST Post Snap, where the Snap delayed the fetching of documents, when the batch size is greater than or equal to one.

4.26426patches11746Latest

Enhanced the REST Post Snap to display all cookies (securedauth cookies and httponly cookies) from the CookieStore along with headers when you select the Show all headers checkbox.

4.26main11181 StableUpgraded with the latest SnapLogic Platform release.
4.25 Patch425patches10419 LatestFixed a memory leak issue in the REST Snap Pack
4.25 Patch425patches9929 LatestEnhanced the REST Snap Pack to support Proxy Authentication.
4.25 Patch425patches9684 Latest
  • Fixed the REST Post Snap that fails to correctly set the Content-Length header when working with multi-file uploads.
  • Added Send Client Data as Basic Auth Header check box to the OAuth2 and OAuth2 SSL accounts. This check box enables you to include and pass the client credentials information in the header when connecting to the OAuth endpoint.
  • Added a new account type REST AWS Sig V4 Account that adds the ability to call any AWS API.
4.25main9554 StableUpgraded with the latest SnapLogic Platform release.
4.24main8556 
StableUpgraded with the latest SnapLogic Platform release.
4.23main7430StableImproved the handling of expired access tokens in REST Snaps that use OAuth2 accounts (REST OAuth2 Account and REST OAuth2 SSL Account). The Snaps can refresh expired access tokens on-demand, through a request to the platform. The Snap reloads the account with the updated/fresh access token before attempting the next retry.
4.22 Patch422patches7103 StableEnhances the Snaps in REST Snap Pack by separating the retry logic for OAuth account from that of the Snap.
4.22main6403 Stable
  • Added a new account type, REST OAuth2 SSL, which enables support for the OAuth2 SSL authentication for REST Snaps with endpoints that require client certificates.
  • [Docs Update] Applied the enhanced doc template to the Snap Pack's documentation. Improves usability by enhancing Snap field descriptions, functional examples, and use cases. 
4.21 Patchrest8858-LatestFixed the REST Get and REST Post Snaps that does not parse Content-Encoding and Content-Type headers for gzipped responses.
4.21

snapsmrc542

-StableUpgraded with the latest SnapLogic Platform release.
4.20 Patchrest8798-LatestFixed the REST POST Snap that fails when a single file is uploaded in multi-part form using the Single file upload Snap settings.

4.20

snapsmrc535

-

Stable

  • The new Multipart related option in the Upload body type property in the REST Post Snap enables you to post files to the Google Drive API and retain the original names.
  • The REST Account now has a new Grant Type option called Client Credentials. This enables the Snap to obtain an access token to the client ID and client secret through the token endpoint URL.
4.19 Patchrest8374-Latest
  • Added a drop-down property Retry Policy to the REST Snaps to provide users with different retry options for connection and 4xx and 5xx error responses.
  • Fixed the REST GET Snap that limits the output to five documents, even when more output documents are expected.

Critical fix

If your current or new Pipelines with REST Snaps use the retry functionality, then we recommend you to use this latest patch version as subsequent GA releases may result in Pipeline executions failing. Else, you can continue using your existing Snap Pack version (stable distribution – snapsmrc528).

4.19snapsmrc528-Stable

Fixed a regression issue wherein REST Snaps are unable to handle empty XML responses when Show All Headers is enabled.

4.18

snapsmrc523-StableUpgraded with the latest SnapLogic Platform release.
4.15 Patchrest6310-Latest

Fixed an issue with the NLTM Rest account connection hanging infinitely.

4.15snapsmrc500-StableUpgraded with the latest SnapLogic Platform release.

4.14 Patch

rest6159-LatestFixed an issue wherein the REST GET and POST Snaps were infinitely trying to connect to endpoint even after pipeline execution abortion.
4.14 Patch

rest5782

-Latest

Fixed an issue wherein the REST POST Snap was not accepting any blank values from upstream Mapper Snap.

4.14 Patchrest5719-Latest

Fixed an issue where the Ultra task was not producing a valid response while acknowledging documents.

4.14

snapsmrc490

-StableUpgraded with the latest SnapLogic Platform release.

4.13 Patch

NA-Latest

REST POST Snap: New properties: Multipart Content-Type, and Filename to be used added.

4.13snapsmrc486-StableUpgraded with the latest SnapLogic Platform release.
4.12 Patchrest4917-Latest

Fixed an encoding issue with the REST Get Snap so that it uses the same encoding format (UTF-8) by default on all machines instead of using a different encoding format based on the machine's Operating System.

4.12 Patch rest4816-Latest

Fixed an issue that caused the REST OAuth accounts to fail when running in orgs with Enhanced encryption in Medium or higher level. 

4.12 Patchrest4781-Latest

Enhanced REST Post Snap to prevent it from encoding file names.

4.12snapsmrc480-Stable

Added Upload body type property to the REST Post Snap for processing the specified content type.

4.11 Patchrest4333-Latest

Added support for the Binary File Uploads with the REST POST Snap.

4.11snapsmrc465-Stable

Updated support of NTLM Account Authentication to the REST Snap Pack.

4.10 Patch rest4070-Latest

Resolved an issue with the REST GET Snap that often fails to exit properly. This should reduce or eliminate that problem.

4.10snapsmrc414-StableUpgraded with the latest SnapLogic Platform release.
4.9 Patchrest3177-Latest

Addressed an issue with REST Get displaying the authorization header in plain text

4.9 Patchrest3126-Latest

Added Connection timeout property to specify the number of seconds to wait before terminating a connection. The Timeout property has been renamed to Read timeout.

4.9.0snapsmrc405-StableUpgraded with the latest SnapLogic Platform release.
4.8.0snapsmrc398-StableUpgraded with the latest SnapLogic Platform release.
4.7.0 Patchrest2555-Latest
  • Addressed an issue in the REST Post Snap with the REST API not returning a full cookie response.
  • Added Show all headers setting to the show full cookie response for the Post, Put, Patch and Delete Snaps.
4.7.0 Patchrest2336-Latest

Resolved an issue with REST Get not handling multiple response cookies.

4.7.0 Patchrest2260-Latest

Added a new "Follow redirects" setting to toggle whether redirects should be followed (default behavior is to follow redirects)

4.7.0snapsmrc382-Stable
  • Updated Snaps in the REST Snap Pack with Response entity type field(The DEFAULT option under this property allows the backward compatibilityThe addition of the property will not affect the existing production pipelines and allows them to run as before).

  • Updated Snaps in the REST Snap Pack with Maximum request attempts and Retry request interval Upload fields.  

  • Updated the RESTPost Snap with Upload transfer request type field.

4.6.0 Patchrest1992-Latest

Resolved an issue where Rest Snaps failed to process the received response that is encoded in charsets such as Windows-1252. This fix will process the response purely based on the charset provided in the Content-Type header.

4.6.0snapsmrc362-StableUpgraded with the latest SnapLogic Platform release.
4.5.1rest1566-Latest
  • A new property was added to the REST Get Snap to specify the iteration interval for pagination.

  • All Snaps now have at most one input and one output view.

4.5.0snapsmrc344-StableUpgraded with the latest SnapLogic Platform release.
4.4.1NA-Latest

Resolved an issue with REST SSL Accounts with Username not send the Authorization header with the HTTP request.

4.4.0NA-Stable

REST Get now supports using parameters from an input document in the Next URL Setting.

4.3.1NA-Latest

Addressed a defect where REST GET Snap fails saying 'Scheme "http" not registered'

Fall Release 2015 (4.3.0)NA-Stable
  • Two-way SSL support was added to the REST account.

  • REST Get 

    • Now has support for iterating over additional result pages.

    • Header variables are now being updated for each input

  • REST Post

    • Improved error handling messages.

    • Resolved an issue with the Snap failing with "Failed to execute HTTP request" error.

September 5, 2015 (4.2.2)NA-Latest
  • Maximum retries and Retry interval support added.

  • Resolved an issue with using a REST Dynamic OAuth2 account with Facebook Graph API.

  • REST Account: REST SSL account added.

June 27, 2015 (2015.22)

NA-Latest

REST Get now allows you to have no output views. Previously, there was exactly one output view.

June 6, 2015 (2015.20)NA-Latest

Rest Post Snap now supports posting a file.

May 2, 2015

NA-Stable

REST: Output views made optional 

January 2015

NA-Stable

Optional Raw data property added to all REST Snaps. If selected, the HTTP response content is written to the output view as is. If not selected, it is parsed according to the content type specified in the response header.

October 18, 2014

NA-Stable
  • NEW! REST Patch Snap introduced in this release.

  • Addressed an issue where REST GET (and perhaps REST Snaps) error view does not include response body. 

Fall 2014

NA-Stable

REST Get: support added for gzip format.

June 30, 2014

NA-Stable

Addressed an issue with RestRequestExecutor class writing data into error views even on successful requests status code 201, 204.

May 2014

NA-StableREST Get, REST Post all updated to support input parameters in HTTP headers

July 2013

NA-Stable
  • NEW! REST Delete Snap introduced in this release.

  • NEW! REST Get Snap introduced in this release.

  • NEW! REST Post Snap introduced in this release.

  • NEW! REST Put Snap introduced in this release.