POST запросы на сторонний API из REVO, как?

Всем привет!

Нужно получить при визите на сайт неавторизованного пользователя (просто при заходе на фронт-энд любого) данные со стороннего сайта через его API POST-запросом и потом эти полученные данные отобразить на фронт-энде этому же пользователю.

Проблема — нельзя светить в HTML коде ключ этого API, иначе можно было бы javascript'om их дернуть и показать.
То есть запрос должен делаться на сервере и потом эти данные (принимаются в JSON) уже обработать и отдать на фронт-энд.

Как принято такую задачу решать в стиле modx way?

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

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

Заранее спасибо за помощь!
P.S. Буду признателен за кусок кода
Михаил
06 января 2016, 22:33
modx.pro
6
5 847
0

Комментарии: 7

Василий Наумкин
07 января 2016, 08:12
+1
Ajax или обычный запрос на свой сайт, а там сниппет, который сделает запрос через cURL на сторонний API.
    Fi1osof
    07 января 2016, 11:57
    20
    +12
    Если ключ не хотите светить, то однозначно запрос надо слать с вашего сервера на донора. В MODX есть готовый CURL-клиент. Вот код для примера:
    $client = $modx->getService('rest.modRestCurlClient');
    $result = $client->request('https://ya.ru', '/', 'POST', $params = array('foo'  => 'foo'));
    print $result;
    Можете с этим кодом к консоли поиграться.
      Илья Уткин
      07 января 2016, 12:18
      0
      Ой, какая красота… а я даже не подозревал, что такое есть… спасибо)
        Fi1osof
        07 января 2016, 12:19
        0
        Не за что!
        Михаил
        07 января 2016, 13:48
        0
        Отлично!

        Большое спасибо!
          Fi1osof
          07 января 2016, 13:48
          0
          Пожалуйста!
          Павел Голубев
          02 ноября 2019, 15:43
          0
          Спасибо!
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7