Обзор модуля

Описание модуля

Модуль помогает организовать программный интерфейс для внешних и внутренних приложений.

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

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

Помимо переработки ядра немаловажным фактором является и добавление карты роутов. За счет карты появилась возможность очень гибко настраивать параметры для любого отдельного роута.

Что получите от приобретения модуля

  • Уменьшение стоимости разработки API за счет сокращения времени на разработку собственного интерфейса.

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

  • Готовый RESTful API интерфейс, с библиотекой встроенных методов, а также с возможностью создавать собственные, кастомные методы, реализующие любую, необходимую логику. И конечно, с автогенерируемой документацией, которую можно предоставить сторонним разработчикам.

Процесс

  1. Ознакомьтесь с документацией по модулю.

  2. Ознакомьтесь с библиотекой встроенных роутов.

  3. Добавьте собственную карту роутов со списком необходимых роутов. Примечание: карты можно хранить в любой папке сайта.

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

  5. При возникновении вопросов по модулю обратитесь в техподдержку через контакты.

Возможности

  • Загрузка интерфейса до запуска публичной части сайта.

  • Отсутствие необходимости в дополнительной настройке платформы.

  • Виртуальный путь к интерфейсу, в том числе и от корня домена (https://domain.com/ или https://domain.com/{api}/ или https://api.domain.com/).

  • Настройка доступа в административной части сайта к разделам модуля на уровне групп пользователей.

  • Автогенерируемая документация в административном разделе.

  • Автогенерируемая документация для клиента в JSON-формате.

  • Поддержка карт роутов.

  • Создание произвольных роутов (/{api}/user/, /{api}/user/get/, /{api}/user/v1/, ... ).

  • Установка собственных контроллеров для роутов (классы, внешние классы, php-файлы).

  • Настройка уровня доступа к роутам.

  • Валидация параметров входящего запроса.

  • Авторизация по логину и паролю для конкретного роута.

  • Авторизация по токену для конкретного роута.

  • Генерация токенов для пользователей.

  • Поддержка списка "белых" логинов/токенов для конкретного роута.

  • Проверка групп пользователя при авторизации для конкретного роута.

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

  • Возможность передачи дополнительных заголовков при ответе.

  • Возможность деактивировать конкретный роут.

  • Кэширование входящих запросов и ответов средствами платформы.

  • Журналирование запросов и ответов.

  • Настройка CORS из административной части сайта.

  • Наличие функций упрощающих разработку интерфейса.

  • Наличие библиотеки встроенных роутов ускоряющих разработку интерфейса.

  • Наличие примеров и руководств для разработчика.

FAQ

Чем данный модуль отличается от REST API Битрикса?

  • В REST API Битрикса мало гибкости, есть необходимость использовать именно предоставленные роуты. Данный модуль позволяет формировать свои роуты, писать свою логику при обработке запроса, то есть предоставляет больше гибкости;

  • REST API Битрикса реализовано не совсем согласно архитектурному стилю REST;

  • В REST API Битрикса, при обработке запроса порой происходят «лишние» действия, которые могут создавать дополнительную задержку при ответе клиенту, может это и не сильно критично, но API должно быть настолько быстрым, насколько это возможно;

  • API не всегда должно быть доступно всем, иногда оно должно быть уникально (роуты, параметры, ... ) для проекта, но за счет общего стиля REST API Битрикса, документация которого в общем доступе, эта уникальность нарушается и создает дополнительную лайзеку для атак на сайт. Используя данный модуль, можно указывать собственное имя роута, где будет работать API. Например: domain.com/rest/ или domain.com/api/, или domain.com/rest-api/, или api.domain.com, и так далее;

  • В REST API Битрикса нет возможности как-то управлять интерфейсом из административной части сайта;

  • В REST API Битрикса нет возможности регулировать доступы к роутам, ограничивать доступ по количеству запросов от клиента, журналировать запросы и ответы, и некоторые другие функции.

  • На текущий момент, в REST API Битрикса, например, нет возможности создать заказ через API. Используя данный модуль вы можете реализовать этот функционал.

  • В целом, данный модуль пишется и развивается на основе запросов пользователей, но REST API Битрикса пишется на усмотрение Битрикса. Плюс это или минус - решать вам.

Чем данный модуль отличается от бесплатной версии? [архив]

  • Переписано ядро - увеличена скорость.

  • Изменена архитектура модуля - увеличена скорость.

  • Работа с роутами переведена на карты - увеличена скорость, больше гибкости в настройке и обработке каждого роута.

  • Введены функции - увеличение скорости разработки. Пример функций: route(), request(), response() и прочие.

  • Добавлена возможность не указывать имя роута для API. То есть, теперь API может запутаться относительно корня домена.

  • Добавлена автогенерируемая документация, то есть теперь описание всех роутов можно увидеть прямо из административной или публичной части сайта.

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

  • Добавлена возможность ограничивать доступ к роуту в зависимости от количества запросов со стороны клиента.

  • Автоматическое подключение модуля в файле init.php.

Примечание

  • Минимальная версия PHP >= 8.0 (согласно требованиям платформы). Использование более ранней версии возможно, но крайне не рекомендуется, в виду возникновения ошибок.

  • Обязательно наличие файла для обработки 404 ошибки (обычно имеется в корне сайта - 404.php) со всеми "директивами" 1С-Битрикса.

  • Если используется веб-сервер Apache: обязательно прописать ErrorDocument 404 /404.php в .htaccess, расположенный в корне сайта, или прямо в конфигурационном файле Apache.

  • Если используется веб-сервер Nginx: обязательно прописать error_page 404 = /404.php?$query_string; в секцию server конфигурационного файла (обычно nginx.conf).

  • Для работы CORS-запросов необходимо чтобы на веб-сервере были разрешены запросы типа OPTIONS.

Спасибо Вам за ознакомление с нашим модулем. Если у Вас имеются какие-либо вопросы/предложения, то мы всегда готовы обсудить их через контакты.

Last updated