[파이썬][Django] API 시리얼라이저 사용 방법과 예제

Django에서 API 시리얼라이저를 사용하여 모델 데이터를 JSON 형식으로 직렬화하는 방법과 예제를 제공하겠습니다. 시리얼라이저는 Django REST framework와 같은 패키지에서 제공되며 RESTful API에서 모델 데이터를 JSON으로 변환하는 데 사용됩니다.

  1. 시리얼라이저 클래스 작성

    먼저, 시리얼라이저 클래스를 작성합니다. 이 클래스는 serializers.ModelSerializer 를 상속하여 모델과 연결됩니다. 예를 들어, 사용자 모델을 시리얼라이즈하는 클래스를 만들어보겠습니다.

# myapp/serializers.py
    
    from rest_framework import serializers
    from myapp.models import User
    
    class UserSerializer(serializers.ModelSerializer):
        class Meta:
            model = User
            fields = ['id', 'username', 'email']
이 클래스는 `User` 모델의 `id`, `username`, `email` 필드를 시리얼라이즈합니다.
  1. 뷰 함수 작성

    시리얼라이저를 사용하여 데이터를 직렬화하는 뷰 함수를 작성합니다. 이 함수는 직렬화된 데이터를 반환합니다.

# myapp/views.py
    
    from rest_framework.response import Response
    from rest_framework.decorators import api_view
    from myapp.models import User
    from myapp.serializers import UserSerializer
    
    @api_view(['GET'])
    def get_users(request):
        users = User.objects.all()
        serializer = UserSerializer(users, many=True)
        return Response(serializer.data)
이 함수는 모든 사용자를 가져와서 `UserSerializer`를 사용하여 직렬화한 후, JSON 형식으로 응답합니다.
  1. URL 매핑 설정

    API 엔드포인트를 URL에 매핑합니다. 이를 위해 Django의 URL 매핑 시스템을 사용합니다.

# myapp/urls.py
    
    from django.urls import path
    from myapp.views import get_users
    
    urlpatterns = [
        path('api/users/', get_users, name='get_users'),
    ]
위의 코드에서 `/api/users/`는 사용자 목록을 반환하는 엔드포인트입니다.
  1. API 호출 및 결과 확인

    이제 /api/users/ 엔드포인트를 호출하고 JSON 응답을 받을 수 있습니다. 예를 들어, Python에서 requests 라이브러리를 사용하여 API를 호출하는 방법은 다음과 같습니다.

import requests
    
    response = requests.get('http://example.com/api/users/')
    
    if response.status_code == 200:
        user_data = response.json()
        print(user_data)
    else:
        print('API 호출에 실패했습니다.')
위의 코드는 API 엔드포인트에서 반환된 JSON 데이터를 파싱하여 사용자 목록을 출력합니다.

이것으로 Django에서 API 시리얼라이저를 사용하여 모델 데이터를 JSON으로 직렬화하고 호출하는 방법을 알게되었습니다. 이를 통해 Django RESTful API를 개발하는 데 도움이 됩니다.