automaticmode / active_workflow

Polyglot workflows without leaving the comfort of your technology stack.
https://www.activeworkflow.org
Other
823 stars 67 forks source link

Send array in Post Agent #11

Open asommer70 opened 2 years ago

asommer70 commented 2 years ago

Hey all,

I was wondering how I can send a JSON array using a Post Agent? I can send a JSON object just fine, but an API I'm working with only accepts an array.

Thanks!

raspberry-lef commented 1 year ago

Hi @asommer70 - could you please give an example of what you are trying to send that does not work?

Thank you

asommer70 commented 1 year ago

Sure, it's something like:

["customerId": "2033412", "email": "bob@example.com"]

I'm getting data from another API parsing the fields I need then sending that to a separate API using a Post Agent, but sending a JSON array doesn't work.

raspberry-lef commented 1 year ago

I am sorry in advance if I am missing anything obvious, but a JSON array is an ordered collection of values, separated by ','. For example, ["2033412", "bob@example.com"].

For key-value pairs, a JSON object would be needed, using braces '{', '}'. For example, {"customerId": "2033412", "email": "bob@example.com"}.

asommer70 commented 1 year ago

You're totally right this is more of what I meant:

[{"customerId": "2033412", "email": "bob@example.com"}, {"customerId": "2322", "email": "me@example.com"}]

An array of key-value pairs.

raspberry-lef commented 1 year ago

@asommer70 I see, thank you.

Could you please share the error message that you get? (With any sensitive/personal/business information redacted please.)

asommer70 commented 1 year ago

This is what I get from the service I'm posting the non-array to:

[ { "itemId": "100118", "zoneId": "Primary Zone", "retail1": "125", "body": "{\"code\":3,\"message\":\"The requested service is not valid.\"}", "headers": { "Content-Type": "application/json;charset=ISO-8859-1", "Content-Length": "58", "Date": "Fri, 18 Nov 2022 16:37:50 GMT" }, "status": 404 } ]

It has a generic error "The requested service is not valid." for anything it doesn't like. In this case it's due to a JSON object being sent to the server instead of an array.

raspberry-lef commented 1 year ago

Thank you for providing this example. This won't work as it is right now, because the Post agent doesn't support sending top-level JSON arrays. It could be done, but it is not in our plans at the moment. I will leave this issue open for future reference and perhaps @vidas has to add or ask something.