ОБЗОР
Веб-сервисный клиент «Suds» — это легковесный SOAP-клиент для Python,
распространяемый под лицензией LGPL.
Подробнее:
ПРИМЕЧАНИЯ К ВЫПУСКАМ:
версия 0.3.6 (04-31-09):
- Изменено жёстко заданное /tmp/suds на tempfile.gettempdir() и создание suds/ по требованию.
- Исправлен тип возврата для Any.get_attribute().
- Обновлено HTTP-кэширование — игнорируются URL файловой системы file://.
- Улучшено логирование сообщений, когда внедряется только ответ.
- Исправлены типы XInteger и XFloat для корректного преобразования возвращаемых массивов.
- Исправлен xs:import схемы с тем же пространством имён.
- Обновлён парсер — не загружать внешние ссылки; добавлен Import.bind() для указания расположения XMLSchema.xsd.
- Добавлен «доктор схем» (schema doctor) — для исправления XSD во время выполнения (см. Option.doctor).
- Исправлены предупреждения об устаревании в Python 2.6.
- Добавлено поведение для @default, определённого на .
- Изменено значение @xsi:type — теперь всегда квалифицированное для doc/literal (отмена изменения версии 0.3.5).
- Добавлена опция Option.xstq для управления квалификацией @xsi:type.
- Исправлены запросы: #64, #129, #205, #206, #217, #221, #222, #224, #225, #228, #229, #230
версия 0.3.5 (04-16-09):
- Добавлено HTTP-кэширование. По умолчанию — 1 день. Не применяется к вызовам методов. Подробнее см. документацию.
- Удалена проверка версии Fedora в spec, так как сборка больше не ведётся для < fc9.
- Обновлён makefile для формирования tarball с помощью tar.sh.
- Определение bare/wrapped перенесено в wsdl для document/literal.
- Транспорт (Transport) реорганизован в пакет (обеспечивает лучшее логирование HTTP-заголовков).
- Исправлены запросы: #207, #209, #210, #212, #214, #215
версия 0.3.4 (02-24-09):
- Статическое (автоматическое) Import.bind('http://schemas.xmlsoap.org/soap/encoding/') — пользователям больше не нужно делать это вручную.
- Базовая WS-Security с {{{UsernameToken}}} и только открытым текстом пароля.
- Добавлена поддержка «разрозненных» SOAP-заголовков через передачу словаря.
- Добавлена поддержка произвольных пользовательских SOAP-заголовков.
- Исправлены сервисные операции с несколькими записями SOAP-заголовков.
- Улучшены алгоритмы загрузки и разрешения схем.
- Исправлены вложенные SOAP multirefs.
- Улучшена (истинная) поддержка elementFormDefault="unqualified" — более точное пространство имён.
- Типы частей WSDL больше не принимают значение targetNamespace WSDL по умолчанию.
- Исправлены запросы: #4, #6, #21, #32, #62, #66, #71, #72, #114, #155, #201.
версия 0.3.3 (11-31-08):
- Больше не устанавливается пакет (tests).
- Реализовано предложение API-3 ( https://fedorahosted.org/suds/wiki/Api3Proposal )
- Подключаемый транспорт
- Именованные аргументы методов
- Базовая HTTP-аутентификация в транспорте по умолчанию
- Добавлена нормализация префиксов пространств имён в SOAP-сообщениях.
- Улучшена очистка SOAP-сообщений от пустых узлов.
- Исправлены запросы: #51 - #60
версия 0.3.2 (11-7-08):
- Поддержка SOAP {{{MultiRef}}} ''(первый проход добавлен в r300)''
- Добавлена поддержка новых тегов схем:
- Добавлена поддержка новых преобразований типов xs <--> python:
- xs:int
- xs:long
- xs:float
- xs:double
- Пересмотрен маршаллер и привязка для дальнейшего уточнения пространств имён создаваемых узлов.
- Исправлена бесконечная рекурсия в пакете ''xsd'' при dereference() во время загрузки схемы.
- Добавлена поддержка wsdl:import/ файлов схем в корневой элемент WSDL.
- Исправлено двойное кодирование (&)
- Добавлен API клиента:
- setheaders() — то же, что и ключевое слово, но работает для всех вызовов.
- addprefix() — сопоставление префиксов пространств имён.
- setlocation() — переопределение расположения в WSDL; то же, что и ключевое слово, но для всех вызовов.
- setproxy() — то же, что и ключевое слово proxy, но для всех вызовов.
- Добавлен правильный префикс пространства имён для SOAP-заголовков.
- Исправлены запросы: #5, #12, #34, #37, #40, #44, #45, #46, #48, #49, #50, #51
версия 0.3.1 (10-1-08):
- Быстрое продолжение выпуска 0.3, который сделал работу с многопортовыми определениями сервисов
сложнее, чем необходимо. После обдумывания (и хорошего ночного сна)
стало очевидно, что несколько изменений сделают это гораздо проще: 1) отфильтровать
привязки, не относящиеся к SOAP — именно они вызывали реальные проблемы; 2) поскольку большинство серверов
нормально работают с любой из SOAP-привязок (SOAP 1.1 и 1.2), неоднозначные ссылки на методы
при их вызове без указания порта будут работать практически во всех случаях. Так зачем же
заставлять suds выбирать порт? Давайте не будем заставлять пользователя делать это,
когда это не нужно. В большинстве случаев пользователи версии 0.2.9 и более ранних не будут
вынуждены обновлять свой код при переходе на 0.3.1, как это могло быть в 0.3.
версия 0.3 (9-30-08):
-
Расширена поддержка многопортовых сервисов, введённая в версии 0.2.9. Это дополнение
обеспечивает корректную обработку ситуаций, когда несколько сервисов определяют один и тот же метод,
и suds будет обрабатывать это должным образом. См. раздел 'СЕРВИСЫ С НЕСКОЛЬКИМИ ПОРТАМИ:'.
-
Добавлена поддержка многодокументного стиля привязки document/literal.
См. раздел 'МНОГОДОКУМЕНТНЫЙ Document/Literal:'.
-
Добавлена поддержка тегов (xs:group, xs:attributeGroup).
-
Добавлены методы Client.last_sent() и Client.last_received().
версия 0.2.9 (9-09-08):
- Поддержка нескольких портов в рамках одного сервиса.
- Ссылки на атрибуты <xs:attribute ref=""/>.
- Кодировщик специальных символов XML в пакете sax сделан подключаемым.
версия 0.2.8 (8-28-08):
-
Обновлена привязка document/literal — теперь всегда отправляется корень документа, на который ссылается .
После очередного анализа пространства и отзывов пользователей, похоже, что элемент, на который
ссылаются, ВСЕГДА является корнем документа.
-
Добавлена поддержка привязки 'binding' schemaLocations к URI пространства имён.
Это для импортов, которые не указывают schemaLocation, но всё равно ожидают загрузки схемы.
Например: Axis ссылается на 'http://schemas.xmlsoap.org/soap/encoding/'
без schemaLocation. Таким образом, выполнив:
from suds.xsd.sxbasic import Import.
Import.bind('http://schemas.xmlsoap.org/soap/encoding/')
Схема привязывается к schemaLocation и загружается.
-
Базовый демаршаллер не требует /schema/.
Должен был быть удалён при рефакторинге, но был пропущен.
-
Обновлён клиент: передаёт kwargs в send() и добавлен /location/ kwarg для переопределения
расположения сервиса в WSDL.
-
Обновлён маршаллер: НЕ создавать XML для атрибутов объектов, которые представляют элементы и/или атрибуты,
являющиеся одновременно необязательными и имеющими значение None.
* Обновлён factory (builder) для включения всех атрибутов.
* Добавлен метод optional() в SchemaObject.
-
Обновлён wsdl для переопределения пространства имён в операции, если оно указано.
-
Исправлена проблема загрузки схемы — все схемы строятся до обработки импортов.
-
Обновлена упаковка в рамках подготовки к отправке в Fedora.
версия 0.2.7 (8-11-08):