Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!
Условия использования
Продлить
Продолжить покупки

REST API Business Edition

REST API Business Edition - твой REST, твои правилаМодуль помогает организовать программный интерфейс для внешних и внутренних приложений.Ранее нами уже был разработан и опубликован на бесплатной основе модуль REST API. Данный модуль хорошо себя зарекомендовал для решения задач межплатформенных обменов, показателями этого факта являются отзывы и количество скачиваний. Со временем стало появляться множество запросов по доработке модуля, и как следствие, мы приняли решение о написании новой, усовершенствованной версии уже полюбившегося модуля.В данной версии мы учли все недостатки и пожелания из прошлой версии, очень хорошо оптимизировали ядро модуля, теперь оно работает гораздо быстрее, и на этом мы делаем свой основной упор. Помимо переработки ядра немаловажным фактором является и добавление карты роутов. За счет карты появилась возможность очень гибко настраивать параметры для любого отдельного роута. Что получите от приобретения модуля:- Уменьшение стоимости разработки API за счет сокращения времени на программирование интерфейса.- Поддержка от профессионалов, имеющих большой опыт создания API.- Готовый RESTful API интерфейс, с библиотекой встроенных методов, а также с возможностью создавать собственные, кастомные методы, реализующие любую, необходимую логику. И конечно, с автогенерируемой документацией, которую можно предоставить сторонним разработчикам.Процесс:1. Ознакомьтесь с документацией по модулю в административном разделе.2. Ознакомьтесь с файлом /bitrix/modules/{module}/routes/_example.php, в котором описаны все настройки доступные для роутов.3. Ознакомьтесь с библиотекой встроенных роутов.4. Добавьте собственную карту роутов со списком необходимых роутов. Примечание: карты можно хранить в любой папке сайта.5. Укажите контроллеры для роутов, которые будут обрабатывать входящие запросы. Контроллеры могут быть, как классами, так и обычными файлами (скриптами). Примечание: контроллеры можно хранить в любой папке сайта.6. При возникновении вопросов по модулю обратитесь в техподдержку через чат или любой, другой, доступный канал связи.Возможности:- Загрузка интерфейса до запуска публичной части сайта.- Отсутствие необходимости в дополнительной настройке платформы.- Виртуальный путь к интерфейсу, в том числе и от корня домена (https://domain.com/ или https://domain.com/{api}/ или https://api.domain.com/).- Настройка доступа в административной части сайта к разделам модуля на уровне групп пользователей.- Автогенерируемая документация в административном разделе.- Автогенерируемая документация для клиента в JSON-формате.- Поддержка карт роутов.- Создание произвольных роутов (/{api}/user/, /{api}/user/get/, /{api}/user/v1/, ... ).- Установка собственных контроллеров для роутов (классы, внешние классы, php-файлы).- Настройка уровня доступа к роутам.- Валидация параметров входящего запроса.- Авторизация по логину и паролю для конкретного роута.- Авторизация по токену для конкретного роута.- Генерация токенов для пользователей.- Поддержка списка "белых" логинов/токенов для конкретного роута.- Проверка групп пользователя при авторизации для конкретного роута.- Возможность ограничения количества запросов в единицу времени на уровне групп пользователей.- Возможность передачи дополнительных заголовков при ответе.- Возможность деактивировать конкретный роут.- Кэширование входящих запросов и ответов средствами платформы.- Журналирование запросов и ответов.- Настройка CORS из административной части сайта.- Наличие функций упрощающих разработку интерфейса.- Наличие библиотеки встроенных роутов ускоряющих разработку интерфейса.- Наличие примеров и руководств для разработчика.Более подробно все возможности, функции и примеры описаны в документации, которая имеется в модуле.Для ознакомления с ней необходимо установить модуль (имеется демо-режим).FAQ:1. Чем данный модуль отличается от REST API Битрикса? 1.1. В REST API Битрикса мало гибкости, есть необходимость использовать именно предоставленные роуты. Данный модуль позволяет формировать свои роуты, писать свою логику при обработке запроса, то есть предоставляет больше гибкости;1.2. REST API Битрикса реализовано не совсем согласно архитектурному стилю REST;1.3. В REST API Битрикса, при обработке запроса порой происходят «лишние» действия, которые могут создавать дополнительную задержку при ответе клиенту, может это и не сильно критично, но API должно быть настолько быстрым, насколько это возможно;1.4. API не всегда должно быть доступно всем, иногда оно должно быть уникально (роуты, параметры, ... ) для проекта, но за счет общего стиля REST API Битрикса, документация которого в общем доступе, эта уникальность нарушается и создает дополнительную лайзеку для атак на сайт. Используя данный модуль, можно указывать собственное имя роута, где будет работать API. Например: domain.com/rest/ или domain.com/api/, или domain.com/rest-api/, или api.domain.com, и так далее;1.5. В REST API Битрикса нет возможности как-то управлять интерфейсом из административной части сайта;1.6. В REST API Битрикса нет возможности регулировать доступы к роутам, ограничивать доступ по количеству запросов от клиента, журналировать запросы и ответы, и некоторые другие функции.1.7. На текущий момент, в REST API Битрикса, например, нет возможности создать заказ через API. Используя данный модуль вы можете реализовать этот функционал.1.8 В целом, данный модуль пишется и развивается на основе запросов пользователей, но REST API Битрикса пишется на усмотрение Битрикса. Плюс это или минус - решать вам.2. Чем данный модуль отличается от бесплатной версии? [архив]2.1. Переписано ядро - увеличена скорость.2.2. Изменена архитектура модуля - увеличена скорость.2.3. Работа с роутами переведена на карты - увеличена скорость, больше гибкости в настройке и обработке каждого роута.2.4. Введены функции - увеличение скорости разработки. Пример функций: route(), request(), response() и прочие.2.5. Добавлена возможность не указывать имя роута для API. То есть, теперь API может запутаться относительно корня домена.2.6. Добавлена автогенерируемая документация, то есть теперь описание всех роутов можно увидеть прямо из административной или публичной части сайта.2.7. Добавлено кэширование. Теперь можно кэшировать запросы и ответы на них, тем самым увеличивая скорость ответа и снижая нагрузку на базу данных.2.8. Добавлена возможность ограничивать доступ к роуту в зависимости от количества запросов со стороны клиента.2.9. Автоматическое подключение модуля в файле init.php. Примечание:- Минимальная версия PHP >= 5.6.- Обязательно наличие файла для обработки 404 ошибки (обычно имеется в корне сайта - 404.php) со всеми "директивами" 1С-Битрикса.- Если используется веб-сервер Apache: обязательно прописать ErrorDocument 404 /404.php в .htaccess, расположенный в корне сайта, или прямо в конфигурационном файле Apache.- Если используется веб-сервер Nginx: обязательно прописать error_page 404 = /404.php?$query_string; в секцию server конфигурационного файла (обычно nginx.conf). - Для работы CORS-запросов необходимо чтобы на веб-сервере были разрешены запросы типа OPTIONS.Спасибо Вам за ознакомление с нашим модулем. Если у Вас имеются какие-либо вопросы/предложения, то мы всегда готовы обсудить их через контакты, указанные в разделе поддержки.

REST API Business Edition

REST API Business Edition

от Artamonov Business
Купить: 9 000 руб.
Попробовать (30 дней)
Скриншоты
Описание

Технические данные

Опубликовано:
06.08.2018
Обновлено:
26.10.2019
Версия:
3.4.0
Установлено:
100 - 499 раз
Подходящие редакции:
«Первый сайт», «Старт», «Стандарт», «Малый бизнес», «Эксперт», «Бизнес», «Корпоративный портал», «Энтерпрайз»
Адаптивность:
Да
Поддержка Композита:
Да
Совместимо с Сайты24
Да

Описание

REST API Business Edition - твой REST, твои правила

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

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

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

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


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

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

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

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


Процесс:

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

2. Ознакомьтесь с файлом /bitrix/modules/{module}/routes/_example.php, в котором описаны все настройки доступные для роутов.

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

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

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

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


Возможности:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Более подробно все возможности, функции и примеры описаны в документации, которая имеется в модуле.

Для ознакомления с ней необходимо установить модуль (имеется демо-режим).


FAQ:


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Примечание:

- Минимальная версия PHP >= 5.6.

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

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

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

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

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

Отзывы (1)
Обсуждения (11)
1 - 5 из 11
Что нового
3.4.0 (26.10.2019) - Добавлено: возможность использовать переменные в роутах. Теперь в карте роутов можно указывать шаблон строки с использованием переменных. Например: /example/check/section/{{sectionId}}/{{productId}}/view/. Значения переменных sectionId и productId можно будет получить так же через request()->get(). Примеры шаблонов строк можно посмотреть в документации по картам роутов.
- Добавлено: константы отключающие сбор статистики, проверки агентов и другие.
- Исправлено: мелкие правки по дизайну модуля в админ.разделе.
- Исправлено: мелкие правки по коду.
3.3.2 (31.08.2019) - Исправлено: решена проблема отображения роутов в документации, если контроллеры роутов были прописаны через путь к файлу, а не через неймспейс.
3.3.1 (30.07.2019) - Исправлено: решена проблема отображения технического сообщения на страницах Настройки и Безопасность при активации режима "Установка для разработки".
3.3.0 (24.06.2019) - Добавлено: Отложенный запуск интерфейса.
Теперь можно регулировать момент запуска модуля с помощью параметра в Настройках.
Стало возможным запускать модуль либо при старте init.php (1.5), либо перед запуском визуальной части, в событии OnProlog (1.15).
Подробнее: https://dev.1c-bitrix.ru/api_help/main/general/pageplan.php
- Обновлено: Документация
3.2.0 (07.05.2019) - Техническое обновление.
3.1.0 (16.02.2019) - Изменено: для большего удобства документация по модулю вынесена на сторонний ресурс.
- Доработано: документация по модулю.
- Доработано: мелкие улучшения.
3.0.0 (15.02.2019) - Доработано: метод создания таблиц журналов.
- Исправлено: языковые фразы.
2.9.3 (09.02.2019) - Исправлено: выборка данных по дате в журнале Входящие запросы.
- Исправлено: ошибка возникающая в случае удаления таблиц при удалении модуля.
2.9.2 (09.02.2019) - Поправлена логика внутренних функций.
2.9.1 (09.02.2019) - Исправление ошибок.
2.9.0 (09.02.2019) - Доработано: если роут отключен, тогда он будет исключен из документации в публичной части (см. описание версии 2.5.0).
- Исправлено: теперь функции модуля не доступны из публичной части сайта.
- Оптимизация и увеличение производительности.
2.8.0 (08.02.2019) - Добавлено: в Журнал Запрос/Ответ добавлено поле Метод, а также добавлен фильтр по данному полю.
- Добавлено: при авторизации через логин и пароль теперь еще происходит проверка на наличие $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'], для поддержки HTTP Authorization.
- Добавлено: при несовпадении типа контента запроса с настройками роута, теперь возвращается название типа контента, который необходим при запросе.
- Добавлено: если запрос производится с участием авторизации, через токен или логин/пароль, тогда в параметры запроса будет добавлена информация о пользователе, которому принадлежат авторизационные данные. Данные пользователя сохраняются в ключ _user. Напоминание: в контроллере, параметры входящего запроса, можно получить с помощью функции request()->get().
- Доработано: при отключении нативных роутов они деактивируются и в документации.
- Доработано: добавлен индикатор активности нативных роутов в раздел Поддержка.
- Доработано: расширена поддержка типов контента при запросе. Например, ранее, метод PUT или DELETE поддерживали только application/json, теперь поддерживают и application/x-www-form-urlencoded, и другие. Напоминание: не забывайте указывать/ограничивать тип контента запроса через карту роутов, с помощью ключа contentType.
- Доработано: расширена поддержка типов запросов: HEAD, PATCH.
- Изменено: название Журнала Запрос/Ответ -> Входящие запросы.
- Изменено: актуализирована документация по модулю.
- Удалено: описание модуля из раздела Документация - Основные сведения.
- Незначительные исправления.
2.7.0 (01.02.2019) - Изменено: приведение названий входящих заголовков к нижнему регистру.
- Добавлено: нативный роут для получения ID пользователя по логину или токену. При запросе требуется авторизация по токену. Уточнение: любой роут может быть перекрыт через собственную карту роутов. То есть, если нативный роут вам чем-то не подходит, то вы можете скопировать его в собственную карту и модифицировать под необходимую логику.
- Добавлено: возможность включать/отключать использование нативных роутов.
- Добавлено: возможность указывать путь к собственным картам роутов. Теперь, нет необходимости хранить рабочие файлы в папке модуля. А именно, карты роутов и контроллеры. Напоминаем о том, что контроллером для роута может выступать, как класс доступный по неймспейсу, так и обычный скрипт. Которые могут располагаться за пределами директории модуля.
- Добавлены: lang-папки для языков: en, de, fr. Внимание, все фразы имеют русский перевод. Папки добавлены для корректной работы модуля на мультиязычных сайтах.
2.6.0 (13.01.2019) - Добавлено: параметр Срок годности токена. Теперь можно указывать срок годности токена при его генерации.
- Добавлено: в карте роутов, в секции security, в ключ token, добавлен ключ checkExpire, регулирующий необходимость проверки срока годности токена, при авторизации через токен.
- Изменено: в карте роутов, в секции security, ключ authType переименован в type, и перенесен в ключ auth.
2.5.0 (13.01.2019) - Добавлено: встроенный роут /{api}/docs для получения документации в публичной части. Теперь клиенты могут получать автоматически генерируемую документацию в JSON-формате, которая создается на основе карт роутов.
- Изменено: папка {module_id}/lib/controllers/example/ удалена, а класс Example перенесен в {module_id}/lib/controllers/native/.
2.4.0 (12.01.2019) - Добавлено: возможность управлять CORS (кросс-доменными запросами) из административного раздела сайта.
2.3.0 (12.01.2019) - Добавлено: вернули поддержку файлового режима работы. Теперь в карте роута, вместо контроллера, можно указать путь к php-скрипту. Подробнее смотрите в карте-примере: /routes/_example.php.
2.2.0 (12.01.2019) - Обновлено: функция json_encode заменена на Bitrix\Main\Web\Json::encode для принудительного кодирования ответа в utf-8.
- Обновлено: заголовки модуля отсылаются только в том случае, если был запущен интерфейс.
- Исправлено: в карте роутов, в секции security, убран ключ required.
- Добавлено: возможность авторизации по логину/паролю. Тип авторизации настраивается в карте роута - ключ authType - подробнее смотрите в карте-примере: /routes/_example.php.
- Добавлено: все настройки и функционал присущий авторизации через токен, так же действует и для авторизации через логин/пароль.
2.1.1 (11.01.2019) - Добавлен принудительный перевод в нижний регистр названия класса при его автоматическом подключении
2.1.0 (10.01.2019) - В карту роутов, в секцию security, добавлен ключ required, который указывает на необходимость активации параметра Авторизация по токену. Подробнее смотрите в карте-примере: /routes/_example.php
2.0.0 (05.01.2019) - Отключение использования функции GetModuleID, так как из-за неё возникала проблема в работе модуля на windows-серверах, в виду разности разделителей директорий ("/", "\"). Проблема описана в Отзыве.
- Увеличен размер поля IP в таблице artamonov_rest_request_response. Для избежания проблемы, когда запросы посылаются из REST-клиентов.
- Небольшая оптимизация ядра.
- Добавлены роуты для работы с токенами (создание, получение, удаление).
- Добавлены роуты для работы с пользователями (создание, получение, обновление, удаление).
1.2.0 (11.11.2018) - Добавлена возможность передавать сообщение при ответе badRequest, internalServerError.
- Добавлена валидация входящих параметров при запросе. Происходит проверка на наличие параметра в запросе, а также на соответствие типу.
- Валидация параметров реализована на два уровня. Подробнее смотрите в карте-примере роутов.
- Поддерживаемые типы параметров при валидации: string, integer, float, email, ip, domain, url. Подробнее смотрите в карте-примере роутов.
- Добавлены человеко-понятные ответы при неудачных запросах типа badRequest.
- Исправлена проблема при получении GET-параметров при запросах типа PUT и DELETE.
- Исправлена проблема при получении заголовков запроса на Nginx (без Apache).
- Поправлены стили модуля в административном разделе сайта.
1.1.0 (24.10.2018) - Языковые фразы: поправлены переводы.
- Кэширование: добавлено условие при установке кэша для избежания получения Исключения.
- Добавлен параметр в разделе Настройки для включения/отключения тестового роута - http|https://{domain}/{api}/example/check.
- Документация: добавлена возможность указывать возможные значения параметра запроса. Подробнее смотрите в карте-примере.
- Документация: добавлена возможность добавлять пример ответа на запрос. Подробнее смотрите в карте-примере.
- Документация: добавлена возможность исключать описание роута. Подробнее смотрите в карте-примере.
- Журналирование: поправлен вывод JSON в журнале Запрос/Ответ.
1.0.2 (11.10.2018) - Поправлены параметры для возможности работы демо-режима
1.0.1 (08.09.2018) - Исправлена работа CORS-запросов
- Исправлены интерфейсные ошибки
Установка
Установка модуля происходит стандартным способом.
После установки модуль будет расположен в разделе Сервисы.

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки