[Django] Rest Framework를 사용해서 API 만들기

Mincho·2023년 1월 6일
0

[Django]

목록 보기
3/4
post-thumbnail

🔴들어가기 앞서..

Django는 모델을 만들고 그 모델안에서 데이터가 쌓이고 조회 또는 삭제를 해줄 수 있지만 궁극적으로 API를 만들어주어 클라이언트와 소통을 할 수 있게 된다. rest framework를 설치하여 API를 만드는 과정을 알아보자!🤜🤜



1. Rest Framework 설치하기

  Django Rest Framework는 API를 구축할 수 있는 도구이다. 이 프레임워크를 사용하여 생성한 데이터들을 바탕으로 API를 개발할 수 있습니다.

Rest Framework설치하기

> poetry add djangorestframework  #가상환경에서 해야함.

> pip install djangorestframework #위의 방법으로 설치해도 적용안되는 경우가 있음.

👏 설치후에 config/settings.py에 INSTALLED_APPS에 등록해주어야 한다.



2. Serializer(직렬화)

  Serializer를 통해 objects <=> XML,JSON간의 데이터를 변환해야한다. 기본적으로 직렬화를 통해 Django(objects) => JSON(문자열) ,역직렬화를 통해 JSON => Django(objects) 클라이언트가 최종적으로 데이터를 받을 때 장고의 객체를 이해할 수 없기 때문에 변환하는 과정이 꼭 필요한다.

  1. serializers.py파일을 Feeds app에 추가해 만들고 직렬화를 해준다. Serializer할 클래스 생성후 ModelSerializer를 상속받는다.

from rest_framework.serializers import ModelSerializer
from .models import Feed 	#feed/models의 Feed테이블모델

class FeedsSerializer(ModelSerializer):  
    class Meta:
        model = Feed
        fields = "__all__"		#데이터테이블의 모든 필드 출력

  2. Serializer를 만들어준후 view.py에 import해준후 Feeds클래스에 추가해준다.

from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Feed
from .serializers import FeedsSerializer

class Feeds(APIView):
    def get(self, request):
        feeds = Feed.objects.all()		#Feed모델의 모든 객체
        serializer = FeedsSerializer(feeds, many=True) #?? #serializer실행
        return Response(serializer.data)


3. ulrs.py에 맵핑 시켜주기


  1. 마지막으로 원하는 경로에 만들어준 직렬화 데이터를 출력시켜주어야 하기 때문에 우선적으로 맵핑을 시켜주어야한다. urls.py에서 경로에 출력되는 views.Feeds에 `as.view()`를 붙어준다.
from django.urls import path
from . import views

urlpatterns = [
    path("", views.Feeds.as_view())
]

  설정해준 경로로 이동하면 JSON데이터로 변환 된 것을 확인할 수 있다.

profile
www.mincho130.xyz <-- 블로그 이사했습니당

0개의 댓글