Валидация в SOWA#

Одной из основных задач SOWA является проверка пакетов, передаваемых через SOWA, на соответствие схемам валидации структурированных данных в форматах JSON или XML, а также по технологиям Protobuf и GraphQL.

В ШПУ SOWA определены следующие виды валидации для передаваемых сообщений.

Валидация по JSON схеме#

JSON-схема - один из языков описания структуры JSON-документа, представляющий собой текстовый формат обмена данными, основанный на JavaScript.

Валидация по JSON схеме представляет собой группу, содержащую в себе request и response последовательности для валидации сообщений запроса и ответа соответственно. Использование request/response валидации по JSON схеме исключает возможность дополнительного подключения WSDL/XSD валидации.

Параметры, используемые для валидации по JSON схеме описаны в статье "Валидация по JSON схеме" в Руководстве прикладного разработчика.

Валидация по WSDL/XSD схеме#

XSD-схема (XML Schema Definition Language) представляет собой набор правил, которым должна соответствовать структура XML-документа.

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

Валидация передаваемых xml-сообщений возможна следующими способами:

  • валидация запроса и ответа на основе xsd-схем - используются готовые схемы xsd (или подготовленные вручную) и директивы (request_schema/response_schema);

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

Использование валидации по WSDL/XSD схеме исключает возможность дополнительного подключения JSON валидатора.

Параметры, используемые для валидации по WSDL/XSD схеме описаны в статье "Валидация по WSDL/XSD схеме" в Руководстве прикладного разработчика.

Валидация Protobuf#

Protobuf (Protocol Buffers) представляет собой протокол передачи структурированных данных, предложенный как эффективная бинарная альтернатива текстовому формату xml.

Для подробного ознакомления с технологией Protobuf рекомендуется ознакомиться со статьей: https://developers.google.com/protocol-buffers/docs/overview.

Пример proto-файла и описание используемых параметров для валидации protobuf приведены в статье "Валидация Protobuf" в Руководстве прикладного разработчика.

Валидация GraphQL#

GraphQL представляет собой язык запросов для получения данных с сервера.

Процедура валидации запросов с помощью GraphQL рассмотрена в статье "Определение цепочек" в Руководстве прикладного разработчика.

Валидация url-form-encoded#

С помощью валидатора url-form-encoded осуществляется преобразование данных HTML-формы в простой JSON-объект в виде пары ключ - значение, что позволяет применить к нему схему валидации.

Подробное описание валидатора url-form-encoded приведена в статье "Определение цепочек" в Руководстве прикладного разработчика.