Pass triggered task parameters using JSON payload using RESTful POST

I have a triggered task that is set up to accept around 10 parameters as well as a bearer token to kick off a pipeline. I know that I can pass parameters into a triggered task API call via the URI (i.e. ?param1=value1$param2=value2) using a RESTful GET. This is less than ideal and I don’t like the idea of the parameters being in the URI.

Is it possible to pass parameters into a triggered task via a JSON payload using RESTful POST?

To clarify, I have tried it and the pipeline kicks off but with empty parameters so it ends up failing.

When you trigger a pipeline with a POST, the body is passed into the pipeline as an input document. So you can’t pass pipeline parameters per se, but you can still parameterize the snap fields off of the input document.

You can pass the bearer token in the Authorization header to avoid passing that in the URI as well.

Ohhh. The body is passed as a document. That would explain it. So the only way to pass in parameters is to pass them in the URI?

The only other option is to pass them through headers.

See this documentation and look under “Custom Headers”

Is there a benefit to using custom headers over URI parameters?

Not from SnapLogic’s point of view. I’d say it’s more of a API design choice. I guess one difference is that the JCC will log the URI (jcc_access.log), so if there were parameters you didn’t want logged out, it’d be better to use a header. Otherwise, I think it’s a matter of taste.

1 Like