[Series 1.DashBoard作成]-11テストAPI View(2)


ユーザ登録POST APIのテスト


CRUD APIの作成を続行します.
今回はプレイヤー登録部分です.POST APIをテストしましょう.
前回のリリースでは、CRUD APIのすべてのModelViewSetクラスが継承され、ビューが生成されたため、追加のテストは必要ありません.
しかし、現在POST APIビュークラスはPostUserViewSetモデルのすべてのデータを返しているため、効率は高くありません.クライアントから必要なデータのみを取得し、登録会員PostUserをテストします.
まず、POST APIモデルのPostUserSerializerを作成します.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!