Бизнес-правила с GraphQL

Бизнес-правила с GraphQL
Автор: Тьерри Сиот Опубликовано 10 июля 2024 г. 0 комментариев

Получение данных по требованию в правилах

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

В этом блоге мы исследуем, как можно динамически получать

GraphQL — это язык запросов. Он предлагает гибкий и эффективный способ запроса только необходимых данных. Подробнее об этом вы можете прочитать во введении.

GraphQL — это язык запросов для API и среда выполнения для выполнения этих запросов с использованием системы типов, которую вы определяете для своих данных. Он был разработан Facebook (теперь Meta Platforms) и известен своей эффективностью и гибкостью. Некоторые из ключевых преимуществ GraphQL включают в себя:

 Декларативная выборка данных.

Потребители могут запрашивать именно те данные, которые им нужны. Это оптимизирует данные, передаваемые по сети. Это приводит к более быстрому и эффективному извлечению данных.

2. Строго типизированная схема. API-интерфейсы GraphQL определяются схемой, которая определяет типы данных и отношения. Эта схема действует как контракт между клиентом и сервером, обеспечивая согласованность и уменьшая количество ошибок. GraphQL позволяет запрашивать схему.

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

Шаблон проектирования

В этом шаблоне проектирования правила определяют, какие дополнительные данные необходимы. Corticon.js использует вызов службы GraphQL (SCO) для доступа к определенным подмножествам данных, предоставляя мощное решение для запроса данных по требованию и их эффективной обработки.

Это показано на следующей диаграмме:

Пример службы принятия решений Corticon с вызывающим приложением и службой GraphQL

На этой диаграмме показан поток выполнения между вызывающим приложением, службой принятия решений Corticon и API GraphQL:

1. Шаг 1. Вызывающее приложение отправляет исходные входные данные (формат JSON) в службу принятия решений Corticon.

2. Шаг 2. Правила на основе набора условий решают использовать GraphQL SCO для доступа к дополнительным данным.

 Шаги 3 и 4: SCO запрашивает подмножество данных, необходимое для правил.

4. Шаг 5: Подмножество данных вставляется в полезную нагрузку данных «в памяти», доступную для обработки правил. Теперь служба принятия решений Corticon может продолжить выполнение правил с полным набором данных.

5. Шаг 6. Служба принятия решений Corticon завершила обработку всех данных и возвращает результаты вызывающему приложению в формате JSON.

Где ШОС?

SCO доступен на GitHub вместе с полным примером проекта Corticon.js.

Пожалуйста, сначала начните с файла readme.

Проект содержит три разных сервиса принятия решений, иллюстрирующих различные возможности.

Каждая из трех служб принятия решений реализуется Мета-описание базы данных Range Раскрытие возможностей базы данных Range для эффективного управления данными. Свяжитесь с нами, чтобы узнать, как базы данных Range могут революционизировать База данных диапазонов ваш процесс управления данными. Помогите изучить преимущества и функциональность баз данных диапазонов в этом подробном руководстве. в своем собственном потоке правил. В следующих трех разделах будет представлен краткий обзор каждого потока правил.

Простейший поток правил
Самый простой поток правил находится в GetOneCountrySimplest.erf и реализует всего два шага:

Шаг 1, показ
Первый шаг (синий) вызывает SCO, а затем второй шаг (зеленый) обрабатывает полученные данные. В этом шаблоне проектирования имя запроса и связанный с ним параметр (код страны) передаются во входных полезных данных в службу принятия решений. Таким образом, по сути, вызывающее приложение, а не сама служба принятия решений, указывает, что запрашивать.

Вот пример:

Специальная база данных

Пример входной полезной нагрузки JSON
Вызывающее приложение указывает имя запроса для получения страны по коду, а код страны — ES для Испании.

Мы получаем следующий результат:

Пример полезной нагрузки результата
Правила определяют запросы
Конечно, бывают случаи, когда более желательно, чтобы правила решали, когда и что запрашивать на основе различных условий. Другими словами, вместо того,  Пример номера телефона чтобы вызывающее приложение задавало параметры запроса, решение принимает разработчик модели.

Этот шаблон проектирования проиллюстрирован в GetOneCountry.erf.

Этот поток правил реализует дополнительный шаг по сравнению с предыдущим случаем, как показано здесь:

Поток правил с запросом на подготовку
Единственное отличие от предыдущего случая заклю agb directory чается в том, что первым шагом является указание запроса и кода страны, как показано здесь:

Указание параметров запроса
Этот шаблон проектирования легче интегрировать, поскольку вызывающему приложению не нужно ничего указывать для запросов GraphQL.

Несколько запросов GraphQL

GraphQL SCO не ограничивается одним типом запроса или одним запросом для каждой службы принятия решений. Это проиллюстрировано в потоке правил GraphQL.erf, где мы сначала запрашиваем все страны Южной Америки, а затем все страны Европы:

Трехэтапный процесс Указание стран запроса
Первые два шага запрашивают все страны определенного континента. Каждый из них реализуется в подпотоке. Например, чтобы получить страны Южной Америки, у нас есть следующий подпоток:

шаг

Leave a comment

Your email address will not be published. Required fields are marked *