Від REST API до веб-додатків: посібник з FastAPI, Flask та Streamlit

Швидко вивчіть, як створювати REST API за допомогою FastAPI, Flask та Streamlit

Вступ

У сучасному світі програмного забезпечення одним із основних елементів веб-додатків є REST API. REST API — це веб-сервіси, які полегшують обмін даними між клієнтом (client) і сервером (server). У цьому посібнику ми детально розглянемо, як створювати REST API за допомогою FastAPI, Flask і Streamlit, починаючи з нуля.

pic

Рисунок 1: Що таке REST API?

1. Що таке REST API?

REST (Representational State Transfer) — це архітектурний стиль, що використовується для створення веб-сервісів. REST API працюють через HTTP протокол і передають дані у форматі JSON або XML.

Основні компоненти REST API

  1. Ресурси (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 ідеальний для створення дружніх інтерфейсів користувача.

pic

Рисунок 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

Leave a Reply

Your email address will not be published. Required fields are marked *