Швидко вивчіть, як створювати REST API за допомогою FastAPI, Flask та Streamlit
Вступ
У сучасному світі програмного забезпечення одним із основних елементів веб-додатків є REST API. REST API — це веб-сервіси, які полегшують обмін даними між клієнтом (client) і сервером (server). У цьому посібнику ми детально розглянемо, як створювати REST API за допомогою FastAPI, Flask і Streamlit, починаючи з нуля.
Рисунок 1: Що таке REST API?
1. Що таке REST API?
REST (Representational State Transfer) — це архітектурний стиль, що використовується для створення веб-сервісів. REST API працюють через HTTP протокол і передають дані у форматі JSON або XML.
Основні компоненти REST API
- Ресурси (Resources):
- У REST API все розглядається як “ресурс”. Наприклад, користувачі, продукти, замовлення — це ресурси.
- Доступ до ресурсів здійснюється через конкретні URL-ендпоїнти.
Приклад:
GET http://api.example.com/users
2. HTTP методи:
GET
: Використовується для отримання даних.POST
: Використовується для створення нового ресурсу.PUT
: Використовується для оновлення існуючого ресурсу.DELETE
: Використовується для видалення ресурсу.
3. HTTP статус-коди:
200 OK
: Успішна операція.201 Created
: Новий ресурс успішно створено.400 Bad Request
: Невірний запит.404 Not Found
: Ресурс не знайдено.500 Internal Server Error
: Помилка на сервері.
4. Заголовки (Headers): Використовуються для визначення вмісту запиту та відповіді API.
Content-Type
: Визначає тип запитуваних або повернутих даних (наприклад,application/json
).Authorization
: Використовується для автентифікації.
2. Розробка REST API за допомогою FastAPI
FastAPI — це фреймворк для створення високопродуктивних веб-додатків за допомогою Python. Він підтримує асинхронне програмування та автоматичну документацію API.
Встановлення FastAPI
pip install fastapi[all]
Простий додаток на FastAPI
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Привіт, FastAPI!"}
Запуск додатка на FastAPI
uvicorn filename:app --reload
Swagger UI: http://127.0.0.1:8000/docs
ReDoc: http://127.0.0.1:8000/redoc
3. Розробка REST API за допомогою Flask
Flask — це мінімалістичний фреймворк, який використовується для розробки малих веб-додатків. Він дозволяє швидко створювати API на Python.
Встановлення Flask
pip install flask
Простий додаток на Flask
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return {"message": "Привіт, Flask!"}
if __name__ == '__main__':
app.run(debug=True)
Запуск додатка на Flask
python filename.py
Інтерфейс Flask: http://127.0.0.1:5000/
4. Розробка веб-інтерфейсу за допомогою Streamlit
Streamlit — це фреймворк, який використовується для створення інтерактивних веб-додатків для візуалізації даних. Його часто використовують у проєктах з науки про дані.
Встановлення Streamlit
pip install streamlit
Простий додаток на Streamlit
import streamlit as st
st.title("Привіт, Streamlit!")
st.write("Це приклад додатка на Streamlit.")
Запуск додатка на Streamlit
streamlit run filename.py
Інтерфейс: http://localhost:8501
Поєднання Flask REST API та Streamlit
У цьому розділі ми створимо REST API за допомогою Flask і візуалізуємо ці дані за допомогою Streamlit.
Код API на Flask
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/data')
def get_data():
return jsonify({"data": [1, 2, 3, 4, 5]})
if __name__ == '__main__':
app.run(debug=True)
Інтерфейс Streamlit
import streamlit as st
import requests
st.title("Отримання даних з Flask API")
response = requests.get("http://127.0.0.1:5000/api/data")
data = response.json()
st.write(data)
Дотримуючись цих кроків, ви можете розробити REST API та візуалізувати дані.
6. Висновок
У цьому посібнику ви дізналися, як розробляти REST API за допомогою фреймворків FastAPI, Flask і Streamlit. FastAPI привертає увагу високою продуктивністю та підтримкою асинхронних операцій, Flask пропонує більш прості та гнучкі рішення, а Streamlit ідеальний для створення дружніх інтерфейсів користувача.
Рисунок 2: Порівняння API
Ресурси:
[
FastAPI
FastAPI фреймворк, висока продуктивність, легкість у навчанні, швидкість кодування, готовий до використання в продуктивному середовищі
fastapi.tiangolo.com
](https://fastapi.tiangolo.com/?source=post_page-----444e9f1ea307--------------------------------)
[
Streamlit * Швидший спосіб створення та публікації додатків з даними
Streamlit — це відкритий фреймворк для Python, який використовується науковцями та інженерами AI/ML для створення інтерактивних додатків з даними…
streamlit.io
](https://streamlit.io/?source=post_page-----444e9f1ea307--------------------------------)
[
Вітаємо на Flask - Документація Flask (3.1.x)
Вітаємо на документації Flask. Flask — це легкий WSGI фреймворк для веб-додатків. Його розроблено, щоб спростити створення…
flask.palletsprojects.com
](https://flask.palletsprojects.com/en/stable/?source=post_page-----444e9f1ea307--------------------------------)
Перекладено з: REST API’den Web Uygulamalarına: FastAPI, Flask ve Streamlit Rehberi