[SOLVED] SOAP access to the Zimbra server
the greatest value I see in Zimbra is that it offers a programmatic access to the functionalities, using open standards.
Looking at the source code (zimbra\ZimbraServer\docs), I see a lot of information about the SOAP messages.
Is there a detailed example (e.g. in Java) a SOAP client for Zimbra?
Is there a WSDL?
If not, what SOAPAction should be used?
How is authentication handled? With HTTP headers, using Basic authentication.
Soap access to the Zimbra Server
A good way to get familiar with the soap api's is to see the soap interaction between the Ajax client and the Zimbra server.
See this post for more info on how to view the requests/responses between the Ajax client and Zimbra server
Perl examples for soapadmin api
There're quite a few perl scripts in ZimbraServer/src/perl/soap for manipulating messgaes/appointments.
Could you provide more perl examples for soapadmin such as adding/deleting/updating account?
Soap rational, verses implementation
I think the decision to use a standardized remoting mechanism like SOAP makes a lot of sense. But after looking through the Zimbra implementation, it seems that somehow a lot of reasons to use SOAP got lost in the final implementation.
2. After looking at Zimbras SOAP implementation within the server package a number of things occur to me :
a. In all honesty, the server code is obviously functional but quite messy, there are very tight couplings everywhere and essentially no documentation within the code. Because of the tight couplings it would be a very cumbersome process of weaseling out just the code needed for a SOAP client, in order to actually use the existing SOAP client you need to take the whole Server package as a .jar - Servlets, Mail stuff, all of Apache Lucene, and so on.
b. The choice to avoid using a standard SOAP implementation like Apache AXIS or other alternatives is somewhat confusing as well. Using one of these instead of making a home-brew version seems like it would give outside developers an easier means to get their SOAP clients working since their is no WSDL. I saw someone at Zimbra saying their implementation is lighter. I can say that with enough familiarity with Apache AXIS its not very complicated to make a lightweight implementation (obviously its even less complicated to make a not-so-light version, which is what most people do), and I certainly haven't gone an made a homebrewed SOAP implementation and benchmarked it against an Apache AXIS implementation with proper Serializer/Deserializers, so I don't know how light it really is.
In any case, if Zimbra simply provided WSDL there could be a lot more development without trying to dig through the Zimbra code.