Top.Mail.Ru

Django REST Framework (DRF): создание API за час

Django REST Framework (DRF): создание API за час

Если вы уже знакомы с 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.

 

Автор:

110

Читайте также

0 комментариев

Оставьте комментарий

Комментарии

Бот: Здравствуйте! Я чат-бот веб-разработчика. Чем могу помочь в создании или доработке вашего сайта?