В предыдущих материалах мы описали особенности Django Views и основные подходы проектирования API, теперь можно разобраться, какие django-пакеты помогают с реализацией.

Популярные django-пакеты — это консенсус сообщества в реализации той или иной функциональности

В материале рассмотрим два наиболее популярных пакета:

  • Django REST Framework (DRF) — фреймворк для создания API "по умолчанию". Создан в 2011 году и наиболее распространен
  • Django Ninja — фреймворк с фокусом на производительность. Вдохновлен FastAPI, Pydantic и использует актуальные возможности Python

Основные понятия

Каждый API работает с одинаковым набором сущностей и действий:

Основные понятия:

  • Схема данных — декларативное описание состава и способа организации данных. Может отличаться "на вход" и "на выход"
  • Формат представления данных — стандартизированный (между клиентом и сервером) способ передачи данных. Часто JSON
  • Обработка данных — дополнение/преобразование/изменение данных с целью выполнить бизнес-логику
  • Сериализация — преобразование (Python-)объекта в формат данных для последующей передачи
  • Валидация — проверка соответствия данных указанной схеме. Часто применяется на входе в API

В конкретном фреймворке для всего этого могут применяться свои термины/сущности, группироваться под одним названием, но суть от этого не изменится:

Общее понятие Django REST Framework Django Ninja
Схема данных Класс Serializer Класс Schema
Сериализация Метод .data (Serializer) Метод .dict() (Schema)
Десериализация Метод .is_valid() + .validated_data Автоматически при передаче в функцию
Валидация Метод .is_valid() Pydantic валидация

Hello World

Получить доступ к полному материалу
Полный текст доступен в курсе