ym88659208ym87991671
Плагин SAF JsonSchema | Документация для разработчиков

Плагин SAF JsonSchema

Обновлено 22 ноября 2023

SAF JSONSchema — это плагин для SmartApp Framework, который позволяет валидировать входящие и исходящие сообщение по JSON-Schema файлам, а также предоставляет стандартный набор схем.

Установка плагина

Напишите на developer@sberdevices.ru и запросите плагин SAF JSONSchema.

Новые возможности

Сущности, которые предоставляет плагин:

  • Класс SchemaStaticResolver. Он позволяет загрузить взаимосвязанные схемы и валидировать объекты по ним. Внутри класса используется библиотека jsonschema, которая предоставляет класс RefResolver. Над ним добавлена возможность загружать схемы из файлов и проверять объекты с разными схемами. Поддерживаются файлы схем в форматах JSON и YAML.
  • Объект default_static_resolver — экземпляр класса SchemaStaticResolver со стандартными схемами. Самая актуальная схема для смартапов – ANSWER_TO_USER.
  • Класс ByNameMessageValidator – наследник класса core.message.msg_validator.MessageValidator. Может использоваться как готовый валидатор в конфиге смартапа.

Чтобы использовать ByNameMessageValidator для валидации исходящих сообщений, добавьте в конфиг строки:


from saf_jsonschema import ByNameMessageValidator
TO_MSG_VALIDATORS = (ByNameMessageValidator(name="AppAnswer"),)

Чтобы расширить объекты класса ByNameMessageValidator, вы можете:

  • Использовать стандартные схемы, но переопределить стандартный маппинг имен сообщений к схемам. Для этого используйте словарь name_to_schema и отключите использование стандартного маппинга флагом direct_pass. Также можно отнаследовать класс и переопределить метод get_schema_by_message.
  • Передавать собственный объект SchemaStaticResolver с нестандартными схемами.
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.