XSQUARE DAC

Автономный RESTfull API сервер, который позволяет автоматизировать процесс создания REST API, предоставляя доступ к хранимым процедурам и функциям на стороне PostgreSQL

Какие преимущества дает работа с XDAC

  • Требования к разработчку

    • Необходимо знать только PostgreSQL - PL/pgSQL, SQL
    • Минимальное время обучения программиста с Oracle Developer – 2-5 дней с MySQL/PHP Developer – 14 дней c MS SQL Developer – 14 – 28 дней
    • 1 команда для установки - yum install xdac
    • 10 параметров для настройки
  • Требования к окружению

    • 15 МБ RAM для работы 10-ти HTTP клиентов
    • 100 МБ RAM для работы 1000-ти HTTP клиентов
    • 2-5% дополнительной нагрузки на Postgres DB
    • Любая RPM/DEB операционная система
    • Любая архитектура - X86/ARM/Эльбрус/Байкал
  • Требования к запуску

    • 10 минут на создание сервиса на получения данных по клиенту curl http://host/api/getClient?id=2342
    • Создание корпоративных приложений в 20 раз быстрее, используя в 100 раз меньше кода
    • MVP микросервисного приложения за 2-3 дня
    • XDAC для Oracle DB
    • XDAC для MS SQL Server

Архитектура решения XDAC

Пример вызова сервиса

  • GET
    Запрос
    без аргуметов

    Каждая процедура и функция, полученная в результате сканирования схемы, публикуется сервисом с префиксом /rpc/

    • CURL:
      curl "http://127.0.0.1:8887/xdac/rpc/f_hello" -X GET

    • Ответ от сервера:
    • Содержимое:
      Hello world!!
    -- Функция в PostgreSQL
    CREATE OR REPLACE FUNCTION api.f_hello()
     RETURNS json LANGUAGE plpgsql
    AS $function$
    BEGIN
    	RETURN '{"GET_RETURN": "Hello world!!"}'::json;
    END;
    $function$;
  • GET
    Запрос
    1 bigint-аргумент

    Получаем в JSON сведения о клиенте по ID из списка клиентов

    • CURL:
      curl "http://127.0.0.1:8887/xdac/rpc/f_get_client?p_id=" -X GET
    • Выберите клиента *

    • Ответ от сервера:
    • ФИО:
      Быков Артём Романович
    • Дата рождения:
      11.04.1968
    • Номер телефона:
      +7(999)123-45-67
    • Электронная почта:
      info@xsquare.ru
    -- Функция в PostgreSQL
    CREATE OR REPLACE FUNCTION api.f_get_client(p_id bigint)
     RETURNS json LANGUAGE plpgsql
    AS $function$
    	DECLARE
    		l_client_info json;
    	BEGIN
    		SELECT json_build_object('fio',           CONCAT(c.last_name,' ',c.first_name,' ',c.second_name),
    								 'date_of_birth', to_char(c.date_of_birth, 'dd.mm.yyyy'),
    								 'phone', 		  c.phone,
    								 'email', 		  c.email)
    		INTO l_client_info
    		FROM cli.t_clients c
    		WHERE c.id = p_id;
    
    		RETURN l_client_info;
    	END;
    $function$;

Функциональные характеристики и возможности XSQUARE-XDAC

  • Автоматическое создание

    конечных точек подключения (API) на основе хранимых процедур и функций БД
  • Автоматическое преобразование

    сигнатур процедур и функций в параметры запросов к API
  • Возможность использования

    нескольких методов для работы с созданным API (GET/POST)
  • Возможность настраивать

    доступ к конечным точкам, используя настройки прав пользователя БД
  • Предоставление доступа

    к дополнительным параметрам http запроса (заголовки,код ответа и пр.) внутри вызываемых процедур и функций
  • Возможность обрабатывать

    запросы типа multipart/form-data
  • Загрузка
    и выгрузка

    бинарных данных
  • Обслуживание
    и балансировка

    HTTP запросов между Веб клиентом и базой данных
  • Поддержка
    баз данных

    PostgreSQL/PostgresPRO версии 13 и выше
  • Поддержка
    пула

    соединений с базой данных