Перейти к основному содержимому

Об обратной совместимости

Одна из ключевых целей при разработке Открытого пакета интеграций - обеспечение полной обратной совместимости с первой и до последней версии. Это позволяет легко поднимать версию любой из доступных поставок до любой другой, не опасаясь (почти) возникновения проблем в уже существующих процессах на конкретном внедрении

Однако, иногда возникает острая необходимость во внесении в новую версию т.н. "breaking changes" - изменений или исправлений, который могут частично нарушить обратную совместимость между новой версией ОПИ и всеми предыдущими. Такие изменения перечисленны в данном разделе:

1.16.0 -> 1.17.0

CLI-версия: Добавлена обработка управляющих последовательностей \n, \r, \v и \f для не-JSON аргументов и аргументов, не являющихся путями к файлам или URL. Во всех значениях соответствующих аргументов, содержащих данные последовательности, они будут заменены на соответствующие спец. символы

1.18.0 -> 1.19.0

Все виды поставки: Обновлены устаревшие методы ПолучитьСписокТоваров, ПолучитьКоличествоТоваров, ПолучитьОписанияХарактеристикТоваров, ПолучитьЦеныТоваров, ПолучитьИнформациюОТоварах, ПроверитьЗагрузкуИзображенийТоваров библиотеки для работы с Ozon в связи с изменениями на стороне API. Возвращаемые значения могут быть изменены

1.24.0 -> 1.25.0

Все виды поставки: Изменен формат представления даты и времени на ISO 8061-совместимый при получении значений из базы

1.26.0 -> 1.27.0

Все виды поставки: Изменен метод СоздатьОпрос библиотеки VK в связи с изменениями API; Исправлен неоднозначный перевод "Тема" как "Thread" и "Topic" в английской версии функций форума библиотеки Telegram. Теперь используется только "Topic"

1.28.0 -> 1.29.0

Ozon: Библиотека работы с Ozon Seller API была удалена и ее поддержка прекращается. Если вы уже используете данную библиотеку в своем проекте, то вам необходимо сохранить ее отдельно перед обновлением

1.29.0 -> 1.30.0

Telegram: Исправлена и унифицирована обработка раскодирования строки и замены спец. символов для всех видов сообщений. При обновлении с прошлой версии обязательно проверьте места использования библиотеки Telegram! Необходимо убрать вручную проставленные вызовы функции РаскодироватьСтроку, если вы добавляли таковые в своем коде для обработки emoji. Теперь данная процедура осуществляется внутри кода библиотеки для всех сообщений

1.31.0 -> 1.32.0

Все виды поставки: Исправлены некоторые имена функций, содержащие опечатки. Обязательно проверьте места использования или выполните синтаксический контроль после обновления!

VK: Удалены функции ПоставитьЛайк и все функции раздела Работа с обсуждениями в связи с их удалением из VK API

1.34.0 -> 2.0.0

Twitter: Библиотека работы с Twitter была удалена в связи с невозможностью дальнейшей поддержки. Если вы уже используете данную библиотеку в своем проекте, то вам необходимо сохранить ее отдельно перед обновлением

2.1.0 -> 2.2.0

Все виды поставки: Значения двоичных данных в результатах работы нативных компонент и соответствующих функций библиотеки теперь возвращаются как ДвоичныеДанные, а не в виде Base64-строк (в том числе в обёртках вида {'blob': '...'}, {'BYTEA': '...'}, {'BYTES': '...'}). Это затрагивает, в частности, результаты SQL-запросов с полями BLOB/BYTEA/BYTES, а также ряд компонент, ранее использовавших внутреннее хранилище двоичных данных (MongoDB, ZeroMQ, WebSocket, gRPC, серверы TCP/HTTP/WS и др.). При обновлении проверьте код, который ожидает Base64 или обращается к вложенным полям с именем типа двоичных данных

MySQL: Исправлено определение текстовых полей при чтении результатов запросов. Значения колонок TEXT/TINYTEXT/MEDIUMTEXT/LONGTEXT, JSON, ENUM, SET, а также строковые поля метаданных (например, DATA_TYPE из information_schema.columns) теперь возвращаются как строки. Ранее часть таких значений ошибочно попадала в двоичный формат из‑за особенностей wire-типов MySQL (семейство BLOB для TEXT/LONGTEXT). Настоящие BLOB/BINARY/VARBINARY по-прежнему возвращаются как ДвоичныеДанные. Если в вашем коде для текстовых полей выполнялось ручное декодирование ['BYTES'] или Base64, его можно убрать и работать со значением напрямую