SOAP API значительно сложнее в работе, чем REST API, но при этом имеет гораздо больше возможностей. Помимо управления данными, хранящимися на сервере, SOAP API позволяет управлять учетными записями, доменами, фактически предоставляя доступ ко всей функциональности Zimbra. Именно поэтому SOAP API используется для написания более сложных клиентских приложений. Например для изменения настроек учетной записи и поэтому используется для создания более продвинутых приложений. Например, веб-клиент Zimbra OSE обменивается информацией с сервером, используя SOAP API.
Как уже говорилось выше, SOAP представляет из себя протокол обмена жестко структурированными xml-сообщениями, в которых одно приложение может передавать данные другому. Транспортом для передачи SOAP-сообщений обычно является HTTP.
SOAP API в Zimbra OSE разбито на несколько составляющих частей. Среди них:
- zimbraAccount — набор SOAP-методов, отвечающих за взаимодействие с учетными записями пользователей
- zimbraAdmin — набор SOAP-методов, отвечающих за выполнение администраторских действий
- ZimbraMail — набор SOAP-методов, отвечающих за управление данными на сервере.
Для нормальной работы с SOAP API, вам потребуются WSDL-файлы: xml, в которых описываются SOAP-методы, доступные для Zimbra. Загрузить их можно прямо со своего сервера по ссылкам:
- WSDL для zimbraAdmin — ВАШ-СЕРВЕР/service/wsdl/ZimbraAdminService.wsdl
- WSDL для zimbraAccount — ВАШ-СЕРВЕР/service/wsdl/ZimbraUserService.wsdl
- WSDL для всех методов SOAP API — ВАШ-СЕРВЕР/service/wsdl/ZimbraService.wsdl
Также вам потребуются xsd-файлы с описаниями для различных разделов SOAP API. Загрузить их также можно с вашего сервера по следующим ссылкам:
ВАШ-СЕРВЕР/service/wsdl/zimbra.xsd
ВАШ-СЕРВЕР/service/wsdl/zimbraAdmin.xsd
ВАШ-СЕРВЕР/service/wsdl/zimbraAdminExt.xsd
ВАШ-СЕРВЕР/service/wsdl/zimbraMail.xsd
ВАШ-СЕРВЕР/service/wsdl/zimbraRepl.xsd
ВАШ-СЕРВЕР/service/wsdl/zimbraSync.xsd
ВАШ-СЕРВЕР/service/wsdl/zimbraVoice.xsd
После импорта WSDL в SoapUI, в нем появляется панель инструментов с методами для Zimbra OSE и можно из них составлять различные приложения. Учитывая то, какие обширные возможности предоставляет SOAP API, появляется возможность создать приложения не только для автоматизации задач по управлению контентом пользователей, но и по автоматизации редактирования различных настроек, созданию, удалению и изменению доменов, пользователей и классов обслуживания.
Для выполнения большинства SOAP-запросов необходимо пройти аутентификацию. Для этого существуют SOAP-методы Auth в zimbraAdmin и zimbraAccount.