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

26.11.24

Интеграция - WEB-интеграция

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Валидатор OpenApi-схем на 1с:
.cf 97,12Kb ver:0.0.3.2
10
10 Скачать (2 SM) Купить за 2 150 руб.

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

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

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

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

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

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


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

 

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

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

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

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

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

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

 

 

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

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

 

Чего пока нет

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

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


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

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

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


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

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

 

Где скачать?

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

OpenApi Swagger валидация json интеграция schema

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2174    2    0    

9

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С. Бесплатный период Техподдержки - 1 месяц.

60000 руб.

07.05.2019    34195    64    45    

24

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    1901    1    1    

4

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    3412    3    2    

4

WEB-интеграция Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    18534    53    50    

29

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    18790    20    22    

18
Оставьте свое сообщение