Forum Discussion

whaleyl's avatar
whaleyl
New Contributor III
8 years ago
Solved

Map Incoming JSON Body

I have a requirement for a pipeline that is supposed to accept an incoming JSON body/payload of attributes in place of sending parameters via the task URL for security related reasons.

For the sake of simplicity, we are trying to accept something in a similar format as seen here:

{
“ID”: 15,
“firstName”: “Jon”,
“lastName”: “Smith”
}

So far we have tried to “accept” incoming data through a Mapper snap with no success. We have tested the pipeline by executing the task URL, and passing the JSON body data in tandem. We’ve tried formatting a Mapper snap in the following way at the beginning of our pipeline:

Is there a way of doing this correctly with the default, OOTB snaps? We do not currently utilize any extra snap packs. Thank you for the help in advance.

  • The beginning snap should be a JSON Parser that would feed into your Mapper snap.

4 Replies

  • del's avatar
    del
    Contributor III

    The beginning snap should be a JSON Parser that would feed into your Mapper snap.

    • whaleyl's avatar
      whaleyl
      New Contributor III

      Hi del, thanks for the response.

      To clarify, I shouldn’t need to place anything else before the JSON Parser snap correct? Everything that’s being fed to the pipeline via the JSON body/payload will be read by the Parser and then passed to my Mapper?

      • del's avatar
        del
        Contributor III

        That is correct. Two things to note:

        • this may be obvious, but the client/consumer must submit an HTTP POST method instead of a GET method
        • as a matter of practice, the consumer should set the HTTP header Content-Type to "application/json "(although I’m not certain it’s necessary for SnapLogic with the JSON Parser as the beginning snap)