
유저등록 GET API 테스트 하기
이번 포스팅부터는 본격적으로 유저에 대해 CRUD API를 작성해보도록 하자.
처음은 유저조회 부분이다. 즉, GET API 테스트를 해보자.
일단 PostUser Model에 대한 Serializer 를 개발한다.
velog_series_01/dashboard/dashboard_core/serializers.py 파일을 열어 아래와 같이 추가한다.
from rest_framework import serializers
from dashboard_core.models import Post, PostUser
class PostSerializer(serializers.ModelSerializer):
title = serializers.CharField()
contents = serializers.StringRelatedField()
created_at = serializers.DateTimeField()
class Meta:
model = Post
fields = "__all__"
class PostUserSerializer(serializers.ModelSerializer):
username = serializers.CharField()
class Meta:
model = PostUser
fields = "__all__"
그리고 같은 위치의 views.py 파일에 CRUD API가 포함되어 있는 ModelViewSet 클래스를 상속하여 아래와 같이 추가해준다.
from rest_framework.viewsets import ModelViewSet
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from dashboard_core.models import Post, PostUser
from dashboard_core.serializers import PostSerializer, PostUserSerializer
# Create your views here.
class PostViewSet(ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
permission_classes = [IsAuthenticatedOrReadOnly]
class PostUserViewSet(ModelViewSet):
queryset = PostUser.objects.all()
serializer_class = PostUserSerializer
위 작업으로, CRUD API가 자동으로 추가된다.
이해가 되지 않는다면, ModelViewSet 클래스를 살펴보자.
class ModelViewSet(mixins.CreateModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.ListModelMixin,
GenericViewSet):
"""
A viewset that provides default `create()`, `retrieve()`, `update()`,
`partial_update()`, `destroy()` and `list()` actions.
"""
pass
위에서 보다시피
C(mixins.CreateModelMixin),
R(mixins.RetrieveModelMixin, mixins.ListModelMixin),
U(mixins.UpdateModelMixin),
D(mixins.DestroyModelMixin)
4가지의 API 처리가 이미 포함되어 있음을 알 수 있다.
이제 마지막은 urls.py 파일에 PostUser Model에 대한 URL을 DefaultRouter 을 이용해서 추가한다.
router = DefaultRouter()
router.register(r"posts", PostViewSet, basename="post_status")
router.register(r"users", PostUserViewSet, basename="user_status")
드디어 GET API 를 테스트 할 준비가 되었다.
서버를 가동한 다음,
python manage.py runserver
Advanced REST Client 같은 API Client Test Tool을 열어서 GET API로 리퀘스트를 설정한다.

SEND 를 눌러서 Response 객체를 확인한다.
아래처럼 현재의 유저정보 로드에 성공하였다!

서버 로그를 보면, 200 OK 정상 처리가 됬음을 확인할 수 있다.

이것으로 GET API 처리가 잘 되는지 테스트 해보았다.
다음 포스팅에서는 이어서 POST API 에 대해서 테스트 해보겠다.
Thank you!