Ответ
Flask — это микрофреймворк, который отлично подходит для создания легковесных REST API. Для более структурированного подхода часто используется расширение Flask-RESTful.
Ключевые компоненты:
Flask: Основной объект приложения.Api: Точка входа для расширенияFlask-RESTful.Resource: Класс, который определяет логику для одного или нескольких HTTP-методов (GET, POST, PUT и т.д.) для конкретного эндпоинта.api.add_resource(): Метод для регистрации классаResourceи связывания его с URL-маршрутом.
Пример: эндпоинт для получения задачи
from flask import Flask
from flask_restful import Resource, Api
# 1. Инициализация приложения
app = Flask(__name__)
api = Api(app)
# 2. Определение ресурса
class TodoItem(Resource):
# Обработка GET-запроса
def get(self, todo_id):
# В реальном приложении здесь будет логика получения данных из БД
tasks = {
1: {"task": "Изучить документацию Flask"},
2: {"task": "Создать REST API"}
}
return tasks.get(todo_id, {"error": "Задача не найдена"}, 404)
# 3. Регистрация ресурса и маршрута
# URL будет выглядеть как /todos/1, /todos/2 и т.д.
api.add_resource(TodoItem, '/todos/<int:todo_id>')
if __name__ == '__main__':
app.run(debug=True)
Для полноценного приложения этот базовый пример дополняется:
- ORM (например,
SQLAlchemy) для работы с базой данных. - Сериализацией/валидацией (например, с помощью
Marshmallow) для преобразования данных. - Аутентификацией (например,
JWT) для защиты эндпоинтов.