Django Swagger Post Parameter 없음
Updated:
python
Django Swagger Post Parameter 없는 현상 해결법
문제
Swagger의 Post에 Parameters를 넣는 곳이 없다.
현재 코드는 다음과 같다.
class AlbumView(APIView):
def get(self, request, format=None):
albums = Album.objects.all()
serializer = AlbumSerializer(albums, many=True)
return Response(serializer.data)
def post(self, request, format=None):
serializer = AlbumSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
찾아보니, GenericApiView를 사용하면 model과 Swagger의 post parameter 연동이 가능하다고 되어있다.
따라서 GenericApiView를 적용하였다.
class AlbumView(GenericAPIView): # GenericAPIView로 변경
queryset = Album.objects.all() # Generic Api View는 반드시 포함 해야한다.
serializer_class = AlbumSerializer # 추가한다
def get(self, request, format=None):
albums = Album.objects.all()
serializer = AlbumSerializer(albums, many=True)
return Response(serializer.data)
def post(self, request, format=None):
serializer = AlbumSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
성공