Каталог решений - Валидатор OpenApi-схем на 1С

Валидатор OpenApi-схем на 1С

Валидатор OpenApi-схем на 1С

В наличии

В современном мире OpenAPI (Swagger) является стандартом для описания RESTful API. Данная подсистема позволит вам проверять входящие и исходящие пакеты данных на соответствие контракту OpenAPI 3.0.x.

Категория:

Описание

Зачем это нужно?

Каждый раз когда мне приходится выполнять какую-то интеграцию, я слышу про 1С одно и то же. У систем 1С или нет контрактов совсем, или они не соблюдаются чуть более чем полностью.

Регулярно вижу запросы от коллег, вроде: "Сформировал тестовый json! Прошу проверить на корректность"

Данная подсистема призвана дать возможность выявлять проблемы в ваших интеграциях на более ранней стадии.

Если сформированный вами пакет — не проходит валидацию, то нет смысла отправлять его в систему-приемник.

Или же, если принятое сообщение не содержит обязательных полей, зачем нам делать что-то дальше? Мы можем сразу ответить, что не будем его обрабатывать, и вернуть ошибку.

Как пользоваться подсистемой

 

Если вкратце, то надо вызвать ровно одну функцию:

МассивОшибок = ВалидаторПакетов.Валидировать(МодельДанных, ИмяСхемыМодели, СпецификацияOpenApi);

МодельДанных — Это собственно наши данные. Можно передавать Структуру, соответствие, Массив или же примитивы(Булево, строку или число)
ИмяСхемыМодели — Имя схемы в спецификации OpenApi

СпецификацияOpenApi — Ну и наконец, спецификация — Это строка в формате JSON. Ваша openApi спецификация, которую вы скачали по ссылке, или же сохранили куда-нибудь в макет.

Все, на выходе у вас будет массив ошибок. Если ошибок нет, то валидация прошла успешно!

В приложенной конфигурации есть Демо-обработка, в которой можно вставлять свои данные и валидировать их.

 

 

Текущие возможности

  • Валидация строк
    • Максимальная и минимальная длинна строк
    • соответствие форматам и паттернам
    • Валидация значений, которые сериализуются в строки(т.е. с форматом uuid можно валидировать уникальныйИдентификатор, а с date — дату)
  • Валидация чисел
    • Проверка целых чисел
    • Проверка на больше-меньше
    • Проверка на кратность
  • Валидация массивов
    • Проверка уникальных значений
    • Проверка на количество элементов
    • Проверки всех элементов на соответствие вложенным схемам
  • Проверки объектов
    • Проверка на количество свойств
    • Обработка флага "additionalProperties"
    • Обработка Обязательных элементов
  • Базовые возможности
    • Разрешение $ref
    • Обработка nullable

 

Чего пока нет

Из основного, пока нет обработки конструкций для реализации наследования и полиморфизма.(oneOf, allOf, anyOf)

Нет фильтрации свойств на основании признаков readonly и writeonly

Нет поддержки xml

Требования к платформе

Для работы разбора форматов строк требуются регулярные выражения, потому требуется платформа 8.3.23+, но вы всегда можете просто убрать проверку форматов, если вдруг она вам не нужна. И тогда в целом почти любая платформа подойдет.

Тестировалось на 8.3.23, 8.3.24, 8.3.25

Благодарности

За основу была взята разработка Данная разработка

 

Где скачать?

Код разработки открыт и доступен на github

has been added to your cart:
Оформление заказа