[Series 1.DashBoard作成]-11テストAPI View(2)
ユーザ登録POST APIのテスト
CRUD APIの作成を続行します.
今回はプレイヤー登録部分です.
POST API
をテストしましょう.前回のリリースでは、
CRUD API
のすべてのModelViewSet
クラスが継承され、ビューが生成されたため、追加のテストは必要ありません.しかし、現在
POST API
ビュークラスはPostUserViewSet
モデルのすべてのデータを返しているため、効率は高くありません.クライアントから必要なデータのみを取得し、登録会員PostUser
をテストします.まず、
POST API
モデルのPostUser
にSerializer
を作成します.POST API
ファイルを開き、次のvelog_series_01/dashboard/dashboard_core/serializer.py
クラスを追加します.class PostUserPostSerializer(serializers.ModelSerializer):
class Meta:
model = PostUser
fields = ("username","password",)
上記のコードから分かるように、PostUserPostSerializer
モデルが新しいデータを登録するために必要なフィールドは、PostUser
およびPOST API
に限定され、username
テストをより容易に作成するために使用される.上記のコードを追加すると、
password
ファイルの完全なコードが以下のようになります.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",)
最後にserializer.py
ファイルを開き、views.py
クラスを以下のように修正し、PostUserViewSet
クラスを追加します.class PostUserViewSet(ModelViewSet):
queryset = PostUser.objects.all()
def get_serializer_class(self):
if self.action == 'create':
return PostUserPostSerializer
else:
return PostUserSerializer
上記のコードが適用されると、クライアントはPostUserPostSerializer
要求を発行し、POST
クラスをModelViewSet
クラスに変換する.現在、
Serializer
、以下のPostUserPostSerializer
が送信され、Advanced REST client
がユーザ登録データとともに送信される.次の図に示すように、
POST
件のメッセージがサーバから受信されます.正常に処理されたことを意味します!
次に、追加したユーザー情報をWebブラウザに直接ロードするかどうかを確認します.
Request
私たちが追加したばかりのプレイヤー情報が登録されていることがわかります!今回のリリースでは、
201 OK
モデルのhttp://127.0.0.1:8000/users/
をテストしました.次に、
PostUser
テストについて説明します.Thank you!
Reference
この問題について([Series 1.DashBoard作成]-11テストAPI View(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@django_apps/Series1-11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol