текст перекладу
Це простий посібник, який показує, як розгорнути власний API-сервіс, використовуючи Raspberry Pi.
Вимоги
- Плата Raspberry Pi (будь-яка версія Raspberry Pi, я використовую Raspberry Pi Zero W)
- Попередньо встановлена операційна система Raspberry Pi
- Для встановлення дотримуйтесь інструкцій за цим посиланням: https://medium.com/thesecmaster/a-step-by-step-guide-to-install-raspberry-pi-os-on-raspberry-pi-5-599a58c9d5f7
- Джерело живлення 5В DC, 3А
- SSH-з'єднання з Raspberry Pi
- Для налаштування SSH-з'єднання з Raspberry Pi дотримуйтесь інструкцій за цим посиланням: https://www.raspberrypi.com/documentation/computers/remote-access.html
- Встановлений Termius на локальній машині (інструмент для підключення до Raspberry Pi через SSH). Завантажте та встановіть з цього посилання: https://termius.com/download/windows
- Postman для HTTP-запитів.
Налаштування Python3 на Raspberry Pi
Спочатку оновіть і оновіть ваше пристрій Raspberry Pi, використовуючи цю команду:
sudo apt-get update
sudo apt-get upgrade
Далі встановіть Python3 за допомогою цієї команди:
sudo apt install python3
sudo apt install python3-pip
Створіть папку, файл Python та середовище Python за допомогою цієї команди:
mkdir Flask_App
cd Flask_App
touch app.py
sudo apt-get install python3-venv
python -m venv flask_app_env
source flask_app_env/bin/activate
Встановіть пакети Python за допомогою цієї команди:
pip3 install flask pyngrok
Встановлення Vim як редактора коду
Ми будемо використовувати редактор коду Vim для написання нашого коду на Python. Використовуйте цю команду для встановлення Vim на Raspberry Pi:
sudo apt install vim
vi app.py
Код на Python
Ось код на Python:
from flask import Flask, jsonify, request
from pyngrok import ngrok
app = Flask(__name__)
@app.route('/', methods=['GET'])
def home():
return jsonify({'message': "Hello Word! Data from Raspberry pi Zero W."})
if __name__ == '__main__':
public_url = ngrok.connect(5000)
print(f"Public URL: {public_url} ")
app.run(host='0.0.0.0', port=5000)
Пояснення коду:
- Ми будемо використовувати фреймворк Flask для створення простого API-додатку.
- REST API виводитиме ‘message’: “Hello Word! Data from Raspberry pi Zero W.” у форматі JSON.
- Flask додаток використовуватиме порт 5000 для хостингу додатка, а також виводитиме публічну URL-адресу, яку можна використовувати для GET-запитів.
Вихідні дані
Вихідні дані
Ось публічна URL-адреса, надана ngrok: “https://23ea-2409-40c2-5010-fd3c-de7c-8468-6821-2d91.ngrok-free.app”
Давайте спробуємо curl локальну URL-адресу, використовуючи цю команду:
curl http://127.0.0.1:5000/
Тепер давайте відкриємо публічну URL-адресу в будь-якому веб-браузері.
Ось ми й тут...
Тепер давайте використовуємо Postman для HTTP-запитів.
Висновок
Ми успішно розгорнули наш публічний REST API. Замість того щоб покладатися на великі хмарні сервіси, такі як AWS або Google Cloud для хостингу API, ми можемо використовувати цю техніку для хостингу власних API.
Соціальні мережі
Слідкуйте за мною в:
GitHub: https://github.com/Sakib-Dalal
Linkedin: https://www.linkedin.com/in/sakib-dalal/
Перекладено з: Python Flask REST API hosting using Raspberry Pi Zero W and ngrok