Создание RESTful API с Django

85 минут Урок 17

Введение. Этот урок посвящен созданию RESTful API с использованием Django. Мы рассмотрим основные концепции, инструменты и лучшие практики, которые помогут вам построить эффективное приложение.

Цели урока:

  • Научиться создавать простое RESTful API на Django
  • Изучить принципы работы с запросами и ответами
  • Понять, как структурировать проект

Ключевые термины
RESTful API
Интерфейс программирования приложений, соответствующий архитектурному стилю REST.
Django
Высокоуровневый веб-фреймворк на Python, позволяет быстро разрабатывать веб-приложения.
JSON
Формат обмена данными, основанный на текстовом представлении объектов JavaScript.

Установка Django и необходимых библиотек. Для начала, давайте установим Django и Django REST Framework.

bash
pip install django djangorestframework

Создание проекта Django. После установки необходимо создать новый проект.

bash
django-admin startproject myproject

Теперь вы можете перейти в созданный каталог:
cd myproject

Создание приложения внутри проекта. Django структурирует проект в приложения, которые могут быть переиспользованы.

bash
python manage.py startapp myapp

Настройка приложения. Не забудьте добавить ваше приложение в настройки проекта.

python
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'myapp', ]
Вопрос

Что нужно установить для работы с Django REST Framework?

Создание модели данных. Для примера создадим модель для хранения информации о книгах.

python
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    published_date = models.DateField()
    isbn = models.CharField(max_length=13)

Теперь необходимо создать миграцию и применить её:

bash
python manage.py makemigrations
python manage.py migrate
Упражнение

Создайте модель для хранения информации о фильмах с полями: название, режиссер, год выхода.

Создание сериализатора. Сериализаторы позволяют преобразовать объект модели в JSON-формат.

python
from rest_framework import serializers

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'

Создание представлений (views). Теперь создадим представление для работы с API.

python
from rest_framework import viewsets

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

Настройка маршрутизации (urls). Не забудьте настроить маршрутизацию для вашего API.

python
from django.urls import path, include
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'books', BookViewSet)

urlpatterns = [
    path('', include(router.urls))
]

Запуск сервера. Теперь можете запустить сервер и протестировать API.

bash
python manage.py runserver

Тестирование API. Для тестирования API вы можете использовать Postman или curl.

Практический сценарий: Кейс: Тестирование API

Вы создали свой первый RESTful API для книг.

Задание:
Используя Postman, выполните запрос GET на /books и проверьте результат.
Чек-лист завершения урока

Заключение. Вы успешно создали RESTful API с помощью Django. Теперь вы можете расширять и улучшать своё приложение.