POST запросы на сторонний API из REVO, как?
Всем привет!
Нужно получить при визите на сайт неавторизованного пользователя (просто при заходе на фронт-энд любого) данные со стороннего сайта через его API POST-запросом и потом эти полученные данные отобразить на фронт-энде этому же пользователю.
Проблема — нельзя светить в HTML коде ключ этого API, иначе можно было бы javascript'om их дернуть и показать.
То есть запрос должен делаться на сервере и потом эти данные (принимаются в JSON) уже обработать и отдать на фронт-энд.
Как принято такую задачу решать в стиле modx way?
Я так понимаю надо делать плагин запроса и вешать его на событие OnHandleRequest?
Но мне не понятно как принять ответ от стороннего сайта и что с ним делать дальше.
В плэйсходер, в чанк его завернуть?
Извиняюсь, если вопрос тупой, но не могу даже что-то схематично прикинуть как это может выглядеть.
Заранее спасибо за помощь!
P.S. Буду признателен за кусок кода
Нужно получить при визите на сайт неавторизованного пользователя (просто при заходе на фронт-энд любого) данные со стороннего сайта через его API POST-запросом и потом эти полученные данные отобразить на фронт-энде этому же пользователю.
Проблема — нельзя светить в HTML коде ключ этого API, иначе можно было бы javascript'om их дернуть и показать.
То есть запрос должен делаться на сервере и потом эти данные (принимаются в JSON) уже обработать и отдать на фронт-энд.
Как принято такую задачу решать в стиле modx way?
Я так понимаю надо делать плагин запроса и вешать его на событие OnHandleRequest?
Но мне не понятно как принять ответ от стороннего сайта и что с ним делать дальше.
В плэйсходер, в чанк его завернуть?
Извиняюсь, если вопрос тупой, но не могу даже что-то схематично прикинуть как это может выглядеть.
Заранее спасибо за помощь!
P.S. Буду признателен за кусок кода
Комментарии: 7
Ajax или обычный запрос на свой сайт, а там сниппет, который сделает запрос через cURL на сторонний API.
Если ключ не хотите светить, то однозначно запрос надо слать с вашего сервера на донора. В MODX есть готовый CURL-клиент. Вот код для примера:
$client = $modx->getService('rest.modRestCurlClient');
$result = $client->request('https://ya.ru', '/', 'POST', $params = array('foo' => 'foo'));
print $result;
Можете с этим кодом к консоли поиграться.
Ой, какая красота… а я даже не подозревал, что такое есть… спасибо)
Не за что!
Отлично!
Большое спасибо!
Большое спасибо!
Пожалуйста!
Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.