Тут Передача данных из Kwizbot с помощью send_request мы разбирались как с помощью send_request отправить запрос, теперь рассмотрим как обработать ответ.

Мы будем использовать в качестве тестового API два сервиса

  1. http://worldclockapi.com/api/json/est/now - API возвращает простой JSON-объект, мы начнем с него
  2. https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5 - API возвращает массив JSON-объектов, что сложнее в обработке

В этой инструкции рассматриваются такие кейсы:

Обработка JSON-объекта в ответе

Сделаем такую конфигурацию действия

{
  "url": "<http://worldclockapi.com/api/json/est/now>",
  "method": "GET",
  "response_mapping": {
    "dayOfTheWeek": "today"
  }
}

И такую конфигурацию сценария. Что было до и что будет после запроса нам не очень важно, наша задача вывести какой сегодня день недели в плейсхолдер today.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8df4beb1-a7ce-42b7-85dc-e3ae8710c76c/Untitled.png

Параметр mapping отвечает за то в какой плейсхолдер будет записан какой параметр из ответа. Здесь всё довольно понятно: параметр dayOfTheWeek ответа будет доступен с плейсхолдером {{today}}

Обработка массива объектов в ответе

Перейдем к получению курса валют. Сделаем такую конфигурацию действия:

{
  "url": "<https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5>",
  "method": "GET",
  "response_mapping": {
    "list_obj": {
      "text": "{{ccy}}/{{base_ccy}}",
      "value": "{{buy}}"
    }
  },
	"save_mapped_list_obj": "currency_mapped_obj"
}

Нам понадобится вот такая конфигурация сценария:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/74dd32f8-144a-4ea1-8d12-4a978271522b/Untitled.png

Блок "список" должен быть сконфигурирован так

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1e2a72bf-1ed1-4573-9d3a-c1df5d1e0550/Untitled.png