SeouliteLab

파이썬 Django 웹 애플리케이션에서 RESTful API 구축하기: Django REST Framework 활용 가이드 본문

카테고리 없음

파이썬 Django 웹 애플리케이션에서 RESTful API 구축하기: Django REST Framework 활용 가이드

Seoulite Lab 2024. 4. 16. 08:52

기능 1: 시리얼라이저(Serializer)를 통한 데이터 직렬화 및 역직렬화

Django REST Framework(DRF)는 시리얼라이저를 통해 모델 데이터를 JSON 또는 다른 포맷으로 변환하고 역직렬화하여 모델 객체로 변환할 수 있습니다. 이를 통해 API 엔드포인트에서 데이터를 쉽게 처리할 수 있습니다.

예제 1: 시리얼라이저 사용

# serializers.py
from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ['id', 'title', 'author', 'published_date']

# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Book
from .serializers import BookSerializer

class BookList(APIView):
    def get(self, request):
        books = Book.objects.all()
        serializer = BookSerializer(books, many=True)
        return Response(serializer.data)

기능 2: API 뷰(API View)를 통한 엔드포인트 구현

DRF는 API 뷰를 통해 API 엔드포인트를 구현할 수 있습니다. API 뷰를 사용하면 HTTP 요청에 대한 응답을 정의할 수 있으며, 인증, 권한 및 다양한 기능을 쉽게 구현할 수 있습니다.

예제 2: API 뷰 구현

# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import Book
from .serializers import BookSerializer

class BookDetail(APIView):
    def get(self, request, pk):
        try:
            book = Book.objects.get(pk=pk)
        except Book.DoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)
        serializer = BookSerializer(book)
        return Response(serializer.data)

기능 3: 라우터(Router)를 통한 URL 패턴 관리

DRF는 라우터를 통해 URL 패턴을 관리할 수 있습니다. 이를 통해 API 엔드포인트를 쉽게 설정하고 관리할 수 있습니다.

예제 3: 라우터 사용

# urls.py
from django.urls import path
from rest_framework.routers import DefaultRouter
from .views import BookViewSet

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

urlpatterns = router.urls