В этом практическом руководстве показано, что необходимо для вызова веб-служб на основе JSON с использованием Zato , ESB на основе Python для SOA, облачных интеграций и внутренних служб.
Покажи мне код
Это код, необходимый:
# stdlib from json import dumps # Zato from zato.server.service import Service class MyService(Service): def handle(self): endpoint = self.outgoing.plain_http.get('Get Last Payment') request = dumps({'customer':123}) response = endpoint.conn.post(self.cid, request) self.logger.info(response.text)
Читайте ниже для всей истории.
Сменные конечные точки
Все в Zato о повторном использовании . Никакая информация никогда не кодируется жестко, поэтому вы не можете напрямую обращаться к каким-либо конкретным адресам. Ваши собственные сервисы используют повторно используемые исходящие соединения, которые создаются с использованием графического интерфейса пользователя , интерфейса командной строки , API или массово из файлов конфигурации.
Таким образом, приведенный выше код просто связан с производством запросов и обработкой ответов, но не с тривиальностями, такими как адреса конечных точек.
Вам также не нужно кодировать безопасность — она добавляется платформой автоматически, если это необходимо.
Любопытно, что конечные точки HTTP основаны на превосходной библиотеке запросов, и вы всегда можете получить прямой доступ к базовому соединению, если это необходимо.
Создание исходящего соединения в графическом интерфейсе
Заполнение формы, подобной приведенной ниже, достаточно для создания исходящего соединения с удаленным веб-сервисом и его распространения на все серверы в кластере Zato .
Никаких перезапусков не требуется. Все горячо перенастроено.
И это все, что нужно сделать.
В будущем, если вам необходимо обновить существующее определение, это можно сделать с помощью перезапусков, просто заполнив форму без изменений кода.
Больше примеров использования
Просмотрите полный API и примеры использования JSON здесь . Учебник также использует JSON в части 2 .
И, кстати, Zato имеет поддержку для XML , SOAP , CSV , другие форматы данных , AMQP , FTP , JMS WebSphere MQ , Redis , планирования работы , SQL и ZeroMQ тоже!