Did you know that you could invoke any service from command line? This works with both Zato’s own API and the services you develop. Depending on how a service is implemented/what it’s exposed through, it can be done with JSON, plain XML, SOAP or any other data format a service accepts.

This will work even if a service isn’t available over any channel and can be used to quickly test things out or to script Zato in bash or any other shell language.

For instance, browsing the API we can see there’s a zato.security.basic-auth.get-list service which returns a list of all HTTP Basic Auth security definitions on a given cluster. Given that it’s part of the API it can be invoked from command line using JSON or XML (or SOAP but let’s skip that part here), as below. Output a bit reformatted for clarity

{% gist 5821763 %}

{% gist 5821774 %}

This also works for asynchronous invocations and can be used to make a service think it’s been invoked through any channel type.

And by the way - the GUI can be used for invoking services directly too.