Versions Compared

Key

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

In this article

...

Use this Snap to route documents to output views based on the incoming HTTP request method. This Snap is primarily meant for use in Pipelines executed through Triggered Tasks. The Snap matches the HTTP request method used in the Triggered Task and routes the document to the corresponding output view as configured for the request method.


Info
The input data must contain the correct content-type header based on your use case, else your pipeline fails.


Snap Type

HTTP Routers Snap is a Flow-type Snap that executes HTTP requests.

Prerequisites

None.

Support for Ultra Pipelines

...

Limitations and Known Issues

None.

Snap

...

Views

TypeFormatNumber of ViewsExamples of Upstream and Downstream SnapsDescription 
Input 

Document

  • Min: 1
  • Max: 1
  • Mapper Snap
  • Copy Snap
  • JSON Generator
A document containing the data to be processed based on the incoming HTTP request. 
Output

Document

  • Min: 1
  • Max: ∞
  • Mapper Snap
  • Union Snap
  • JSON Formatter

If the input document is routed to more than one output views, they are all instances of the same input document. The Pipeline may fail if any downstream Snap attempts to modify the same document without copying it.

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. The available options are:

  • 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 rest of the 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

...

Info
  • Asterisk (*): Indicates a mandatory field.

  • Suggestion icon (Image Added): Indicates a list that is dynamically populated based on the configuration.

  • Expression icon (Image Added): Indicates whether the value is an expression (if enabled) or static (if disabled). Learn more about Using Expressions in SnapLogic.

  • Add icon (Image Added ): Indicates that you can add fields in the field set.

  • Remove icon (Image Added): Indicates that you can remove fields from the field set.


Field NameTypeDescription
Default ValueExample 
LabelString
Insert excerpt
File Writer
File Writer
nopaneltrue
N
Default Value: N/A
ExampleHTTP Router

Routes*

Required. Use



Use this field set to define/map one output view each to one or more of the request methods supported.

 Only one method can be specified in each row.

 Click Image Modified to add a new row

in this table

and define the values accordingly.

 

This field set comprises of the following fields:

Request method

  • Output view name

  • Request method

    String/Expression/Suggestion

    Select or enter one request method

    ,

    per

    each

    row, depending on the different HTTP requests expected from the Triggered task. The following different request methods are supported:

    • GET
    • POST
    • PUT
    • PATCH
    • DELETE
    • HEAD

    This field allows an additional value OTHER to handle request methods coming from the Triggered Task that are not configured in this Snap.

    N

    Default Value: N/A
    ExampleGET

    Output view name

    Drop-down
    Dropdown list

    Select an output view name from this

    drop-down

    dropdown list list for each Request method selected. 

    Map the value OTHER to an output view that suits your exception-handling requirements. For example, an incoming request method DELETE or HEAD in the

    above scenario (

    overview image

    )

    is routed to output4 that corresponds to the value OTHER.

    Info
    titleConfigure output views beforehand

    Ensure that the required number of output views are added for the Snap from the Views tab. These output views will

    ,

    then

    ,

    be listed in this field for you to select.

    N

    Default Value: N/A
    Exampleoutput3

    Snap Execution
    Drop-down
    Dropdown list

    Select one of the three following modes in which the Snap executes:

    • Validate & Execute. Performs limited execution of the Snap and generates a data preview during Pipeline validation, then 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 downstream from it.

    Validate

    Default Value: Validate & Execute
    ExampleExecute only

    Troubleshooting

    ErrorReasonResolution
    Failed to evaluate expression: _
    Reqest
    Request_Method.The expression for the Request Method field contains an invalid
    Pipeline
    pipeline parameter and the Snap
    is unable to
    cannot process the incoming requests.

    Ensure

    that

    you use the correct spelling for

    Pipeline

    pipeline parameters within the expressions defined in Snap's settings.

    If your data contains invalid content-type headers or if you pass an incorrect JSON payload, the Snap aborts the pipeline with an error.

    When the Snap receives an invalid content-type header in the input, the error appears at the platform level and therefore is not displayed in the Snap Settings dialogue box.

    Ensure to pass valid JSON Payload and content-type headers.

    Examples

    Using HTTP Router Snap to Process the Request from a Triggered Task

    The following example Pipeline pipeline demonstrates the use of HTTP Router Snap to process an incoming POST request via a Triggered Task. This Pipeline contains the REQUEST_METHOD parameter configured with the value POST.

    Triggered TaskPipeline with HTTP Router Snap

    Image Removed

    Image Added

    Pipeline Properties

    Image Modified

    When the Triggered Task - Task_On_HTTP_Router is run from the Task's details page, the corresponding Pipeline pipeline is executed.

    The HTTP Router is configured to route the incoming document to a corresponding output view, matching the Request method value with the REQUEST_METHOD Pipeline parameter.

    ...

    In this example, the HTTP Router uses this JSON document and the REQUEST_METHOD from the Triggered Task as inputs. Based on the incoming value for REQUEST_METHOD (POST in this example), the HTTP Router routes the document to the corresponding output view (output1 in the validated Pipeline above). The Pipeline execution continues further to finally write the formatted JSON output into a JSON file.

    Download this Pipeline

    Using HTTP Router Snap to Process an Ultra Task

    The following example Pipeline pipeline demonstrates how you can use an HTTP Router Snap to process an incoming PATCH request through an Ultra Task. 

    First, we create an Ultra Task for the HTTP Router Pipeline pipeline with a request to send a notification to the patchadmin@snaplogic.com whenever a patch is completed.

    Ultra Task for HTTP Router SnapPipeline with HTTP Router Snap

    We configure the HTTP Router Snap to route the incoming data to a the corresponding view.
    Image Modified

    When the Ultra Task - Ultra_Task_On_HTTP_Router is run, the corresponding Pipeline - HTTP Router is executed. Based on the HTTP method, the HTTP router routes the data to the corresponding output view (in this example, the patch request routes to output 4). You Using the File Writer Snap, you can further write the formatted JSON output into a JSON file using the File Writer Snap.

    Download this Pipeline.

    Downloads

    ...

    titleImportant Steps to Successfully Reuse Pipelines

    ...

    Multiexcerpt include macro
    namedownload_instructions
    pageOpenAPI


    Attachments
    patterns*.slp, *.zip

    ...

    Insert excerpt
    Flow Snap Pack
    Flow Snap Pack
    nopaneltrue

    ...