Часть 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, сопоставленный…