[Series1. DashBoard 만들기] - 11. API View 테스트 (2)

django_apps·2021년 9월 22일
0

django apps

목록 보기
11/17
post-thumbnail

유저등록 POST API 테스트 하기

유저에 대한 CRUD API를 계속해서 작성해보도록 하자.

이번에는 유저등록 부분이다. POST API 테스트를 해보도록 하자!

저번 포스팅에서 이미 모든 CRUD API 가 포함된 ModelViewSet 클래스를 상속하여 View를 생성했었기 때문에 POST API 테스트를 위해서 추가 작업은 필요하지 않다.

하지만, 현재 PostUserViewSet View 클래스는 PostUser Model의 모든 데이터를 반환하기 때문에 효율적이지 않다. 필요한 데이터만 클라이언트에게 받아서 회원등록 POST API 을 테스트 해보자.

일단 PostUser Model의 SerializerPOST API 용으로 하나 더 만들자.

velog_series_01/dashboard/dashboard_core/serializer.py 파일을 열고, 아래와 같이 PostUserPostSerializer 클래스를 추가한다.

class PostUserPostSerializer(serializers.ModelSerializer):

  class Meta:
    model = PostUser
    fields = ("username","password",)

위 코드에서 확인할 수 있듯이 PostUser Model 신규데이터 등록에 필요한 필드는 POST API 테스트를 보다 간편하게 만들기 위해서 usernamepassword 으로만 제한하였다.

위 코드를 추가한 후에 serializer.py 파일의 전체 코드는 아래와 같다.

from django.db.models import fields
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__"

class PostUserPostSerializer(serializers.ModelSerializer):

  class Meta:
    model = PostUser
    fields = ("username","password",)

마지막으로 views.py 파일을 열어서 PostUserViewSet 클래스를 아래와 같이 수정하여 PostUserPostSerializer 클래스를 추가한다.

class PostUserViewSet(ModelViewSet):
  queryset = PostUser.objects.all()

  def get_serializer_class(self):
    if self.action == 'create':
      return PostUserPostSerializer
    else:
      return PostUserSerializer

위 코드를 적용함으로써 클라이언트로부터 POST 요청이 오면, ModelViewSet 클래스에 적용하는 Serializer 클래스를 PostUserPostSerializer 로 바꿔준다.

이제 Advanced REST client 로 아래와 같이 POST 로 유저등록 데이터와 함께 Request 를 보낸다.

아래처럼 서버로부터 201 OK 메시지가 도착하였다.
정상처리가 되었음을 의미한다!

이제 직접 웹브라우저에서 방금 추가한 유저정보가 로드되는지 확인해보자.

http://127.0.0.1:8000/users/

아래에서 우리가 방금 추가했던 유저정보가 등록되어있음을 알 수 있다!

이번 포스팅에서는 PostUser Model의 POST API 테스트를 해보았다.

다음에는 이어서 UPDATE API 테스트에 대해서 알아보겠다.

Thank you!

profile
django developer

0개의 댓글