Если вы уже знакомы с Django и хотите быстро создать мощный API, Django REST Framework (DRF) — это именно то, что вам нужно. Этот инструмент позволяет за считанные минуты создавать полноценные RESTful API. В этой статье вы узнаете, как за один час разработать простое API на DRF с нуля.
Django REST Framework — это библиотека для Django, которая значительно упрощает создание API. Она предоставляет готовые классы сериализации, представления (views), аутентификацию, пагинацию, разрешения доступа и многое другое.
Установка DRF
Перед началом убедитесь, что у вас установлен Django. Затем установите DRF:
pip install djangorestframework
Добавьте 'rest_framework'
в INSTALLED_APPS
в файле settings.py
:
INSTALLED_APPS = [
...
'rest_framework',
]
Создаём проект и приложение
django-admin startproject myproject
cd myproject
python manage.py startapp api
Добавьте приложение 'api'
в INSTALLED_APPS
в settings.py
Создадим простую модель задачи:
# api/models.py
from django.db import models
class Task(models.Model):
title = models.CharField(max_length=100)
description = models.TextField(blank=True)
completed = models.BooleanField(default=False)
def __str__(self):
return self.title
Не забудьте применить миграции:
python manage.py makemigrations
python manage.py migrate
Сериализация данных
Сериализатор превращает объекты модели в JSON и наоборот:
# api/serializers.py
from rest_framework import serializers
from .models import Task
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = '__all__'
API Views
Добавим представления с помощью ModelViewSet
:
# api/views.py
from rest_framework import viewsets
from .models import Task
from .serializers import TaskSerializer
class TaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.all()
serializer_class = TaskSerializer
Настройка маршрутов
Создайте файл api/urls.py
:
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import TaskViewSet
router = DefaultRouter()
router.register(r'tasks', TaskViewSet)
urlpatterns = [
path('', include(router.urls)),
]
И подключите его в myproject/urls.py
:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('api.urls')),
]
Запуск проекта
python manage.py runserver
Теперь API доступен по адресу:http://127.0.0.1:8000/api/tasks/
Вы можете выполнять стандартные операции CRUD:
-
GET — список задач
-
POST — создание задачи
-
PUT/PATCH — обновление
-
DELETE — удаление
DRF предоставляет удобный веб-интерфейс для тестирования прямо в браузере.
Аутентификация
Чтобы добавить аутентификацию, активируйте:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
]
}
А затем добавьте поддержку токенов:
pip install djangorestframework-simplejwt
Django REST Framework — это мощный и гибкий инструмент, с которым можно создать API буквально за час. Он позволяет разработчикам сосредоточиться на логике приложения, а не на рутинной работе с HTTP.
Автор: Евгений Морковин
0 комментариев
Оставьте комментарий
Комментарии