This how-to shows what is needed to invoke JSON-based web services using Zato, which is a Python-based ESB for SOA, cloud integrations and backend services.


This is the code needed:

400: Invalid request

Read below for the whole story.

SWAPPABLE ENDPOINTS Everything in Zato is about reusability. No information is ever hard-coded hence you don't access any particular addresses directly. Your own services use reusable outgoing connections that are created using the GUI, CLI, API or en masse from config files.

Thus, the code above is simply concerned with producing request and handling response but not with trivialities such as endpoint addresses.

You don't need to code security either - this is added automatically, if needed, by the platform.

For the curious one - HTTP endpoints are based on top of the excellent requests library and you can always access the underlying connection directly if it's needed.


Filling out a form such as below is enough for an outgoing connection to a remote web service be created and propagated across all servers in a Zato cluster.

No restarts are needed. Everything is hot-reconfigured.

Screenshot Screenshot

And that's all there is to it.

Likewise, should you in future need to update an existing definition, this can be done with restarts, by merely filling a form, with no code changes.


Browse the full API and more JSON usage examples here. The tutorial also makes use of JSON in part 2.

And by the way, Zato has support for XML, SOAP, CSV, other data formats, AMQP, FTP, JMS WebSphere MQ, Redis, job scheduling, SQL, ZeroMQ, too!