atpv

Навчальні матеріали з автоматизації технологічних процесів та виробництв, розроблені спільнотою

<- До підрозділу Коментувати

Використання HTTP API: практична частина

Тривалість: 1 акад. години.

Мета: навчитися використовувати публічний HTTP API.

Лабораторна установка

  • Апаратне забезпечення: ПК.
  • Програмне забезпечення: Node-RED

Порядок виконання роботи

1. Використання відкритого HTTP API

Багато застосунків в Інтернеті мають відкритий API інтерфейс для доступу до різних ресурсів як сервісів чи даних. Більшість з них є платними і надаються за підпискою. Деякі з них мають можливість обмеженого користування на певний період чи на певну продуктивність.

Node-RED може представляти як бік клієнта так і сервера HTTP. У більшості випадків на рівні Edge він представляє бік клієнта. Дана частина практичного завдання призначена для побудови в Node-RED WEB-клієнта для доступу через API до інших застосунків.

Увага! Більшість ресурсів є захищеними та потребують автентифікації, шифрування і т.п. У цій роботі усі інтерфейси є відкритими, тому не можуть в чистому вигляді використовуватися в промислових умовах!

2. Знайомство з сервісами IPAPI

У якості прикладу серверного Веб-застосунку використовуватиметься IPA-PI, який дає можливість визначити деталі місця розташування за IP адресою. Це можна зробити через сторінку Веб-інтерфейсу, або через відкритий API-інтерфейс. Повний опис API з форматом JSON доступний за посиланням.

  • Зайдіть на сторінку за посиланням https://ip-api.com.
  • Ознайомтеся зі змістом сторінки. Зверніть увагу на ту інформацію, яка надається по IP-адресі, а також на значення Вашої білої адреси IP, вірніше від якої Ваш пристрій спілкується в Інтернеті.

Слід розуміти, що у більшості випадків видима IP-адреса – це одна з адрес провайдера, що надає послуги Інтернету, тому координати будуть саме цього провайдера.

  • Подивіться на приклад запиту і відповіді в форматі JSON.
  • Зайдіть на сайт https://www.myip.com/, подивіться яка інформація там надається.
  • Ознайомтеся з API-сервісом https://www.myip.com/api-docs/.

3. Робота з утилітами для API-тестування

Для тестування API Ви можете користуватися будь якою онлайн або офлайн утилітою. У даній лабораторній роботі пропонується скористатися доповненням до браузерів FireFox з назвою RESTED або Chrome з назвою REST API Tester.

  • Встановіть розширення для браузера, або аналогічне, яке можна знайти за посиланнями:

  • для Firefox https://addons.mozilla.org/en-US/firefox/addon/rested/
  • для Chrome https://chromewebstore.google.com/detail/rest-api-tester/oihoocdkmajhmnlonamoilbpjjehgbka

  • Для перевірки роботи API https://www.myip.com введіть в поле адреси https://api.myip.com у метод – «GET», і натисніть «SEND» або “TEST” в залежності від вибраного програми.

image-20240316111417728

рис.1.

  • Проаналізуйте відповідь

  • Повторіть те саме з адресою http://ip-api.com/json/8.8.8.8/ .
  • Повторіть те саме зі своєю білою IP-адресою, або просто відправивши http://ip-api.com/json/. Порівняйте отримані результати з тими, що показані на сторінці https://ip-api.com

4. Створення клієнту для IPAPI в Node-RED

  • Запустіть Node-RED, створіть нову вкладку з назвою IPAPI.
  • самостійно реалізуйте програму, яка буде використовуючи вузол “Http request” для витягування інформації про білий IP, використовуючи сервіси http://ip-api.com/json/. Зверніть увагу, що IP-API може повернути негативну відповідь - це може бути спричинено обмеженим використанням безкоштовного сервісу.

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

5. Виведення прогнозних даних по температурі та опадам

У цьому пункті необхідно самостійно ознайомитися з API сервісу надання даних по температурі та вивести прогнозні дані на добу

  • Перейдіть на сторінку опису документації open-meteo. Використовуючи наявний опис та налаштування виведіть прогнозні дані у вигляді графіку на екран для Вашого місця перебування (рис.1)

image-20260504103302229

рис.1. Приклад графіку прогнозу температури

  • Подивіться на сформований API URL та відкрийте його в браузері. Проаналізуйте отриманий результат.
  • Зробіть фрагмент програми в Node-RED для формування запиту, подивіться результат за допомогою вікна Debug.
  • Реалізуйте відображення архівних даних за допомогою вузла Chart в Dashboard2.

Підказка. Для відображення даних що повернулися з HTTP Request у вузлі Chart треба їх попередньо обробити у вузлі Function. Приклад коду для оброблення показано нижче

let data = [];
for (let i = 0; i < msg.payload.hourly.time.length; i++){
    data [i] = {
        x: new Date(msg.payload.hourly.time[i]),
        y: msg.payload.hourly.temperature_2m[i]
    }
}
msg.payload = data;
return msg;

Вузол Chart може мати наступні налаштування

image-20260504211048458

Автори

Практичне заняття розробив Олександр Пупена.

Feedback

Якщо Ви хочете залишити коментар у Вас є наступні варіанти:

Про проект і можливість допомогти проекту написано тут