Задать вопрос
@inviziblll

Как в Битрикс реализовать единую точку входа для запросов с фронтенда?

У нас интернет-сервис для юридической помощи. На фронтенде пользователи заполняют большую анкету, с несколькими разделами. Функционал на фронте реализован на Vue JS виде одностраничного приложения.

На бекенде БУС редакция Бизнес. Все запросы со стороны Vue JS у нас обернуты в BX библиотеку и отправляются через BX.ajax.runComponentAction

На стороне Битрикс написан кастомный компонент API который принимает запросы со стороны фронтенда и обрабатывает их в своих ajax- контроллерах. Делали основываясь вот на этой статье

Подскажите можно ли в Битрикс реализовать единую точку входа для запросов со фронтенда, так чтобы каждый запрос со стороны JS шел на адрес и перенаправлялся в нужный контроллер который так чтобы можно было не создавать своего кастомного контроллера? Сделать единый вход для запросов к API который будет лежать не в контроллерах, в отдельной директории. Посоветуйте как лучше сделать такой функционал?
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Комментировать
.runComponentAction и так шлет все по сути на одну точку входа - вам нужно лишь создать соотвествующий компонент

.runAction можно использовать для модуля и создавать свои контроллеры внутри модуля.

НУ и третий вариант вам уже предложили - используя новый роутинг настроить точку входа, например:
$routes->post('/api/feedback', [\App\Controller::class,'sendFeedback']);


Далее вы просто создаете контролер скажем local/php_interface/lib/App/Controller.php
Остается сделать автозагрузку. Я просто описываю для композера:
{
    "name": "mav/myproject",
    "type": "project",
    "autoload": {
        "psr-4": {
                "App\\": "lib/App",
            }
    },
    "require-dev": {
        "kint-php/kint": "dev-master"
    },
    "require": {
        "mav/slovo": "^0.2.3"
    }
}


Всё.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы