Часть 3 освоения FastAPI: создание API масштабируемого книжного магазина
Добро пожаловать в третью часть нашей серии FastAPI! В предыдущих статьях мы представили FastAPI и настроили нашу среду разработки. Теперь пришло время погрузиться в суть FastAPI и создать простой API CRUD (Создание, Чтение, Обновление, Удаление) для управления книгами. К концу этой статьи вы получите базовое представление о возможностях маршрутизации, обработки запросов и хранения данных FastAPI.
Подготовка сцены
Прежде чем мы начнем программировать, давайте резюмируем цели нашего проекта: создание API книжного магазина. Наш API должен позволять пользователям выполнять следующие действия:
- Создайте новую запись в книге.
- Получить информацию о книге по ISBN.
- Обновить информацию о книге.
- Удалить книгу из магазина.
Давайте разберем эти задачи одну за другой.
Маршрутизация в FastAPI
FastAPI позволяет легко определять маршруты API с помощью функций Python. Каждая функция сопоставлена с определенным методом HTTP и конечной точкой URL-адреса. Начнем с создания базовой структуры нашего приложения FastAPI:
1. Создайте (POST) новую книгу.
from fastapi import FastAPI # Create an instance of FastAPI app = FastAPI() # In-memory data store for books (replace with a database in production) books_db = {} @app.post("/books/") def create_book(book: dict): """ Create a new book entry. Parameters: - book (dict): The book data to be added. Returns: - dict: A response message indicating success or failure. """ isbn = book["isbn"] if isbn in books_db: return {"message": "Book with the same ISBN already exists"} books_db[isbn] = book return {"message": "Book created successfully"}
Объяснение:
- В этом блоке кода мы начинаем с импорта
FastAPI
и создания его экземпляра с именемapp
. - Мы представляем хранилище данных в памяти
books_db
для временного хранения данных книг. В реальном сценарии это будет заменено базой данных. - Обработчик маршрута
create_book
, сопоставленный…