지난 번 포스팅에 이어 API를 만들어 테이블에 데이터를 삽입(insert)을 진행하도록 하겠습니다.
test_app/views.py에 다음 코드를 추가합니다.
...
from rest_framework import status
@api_view(['POST'])
def setTestMember(request):
reqData = request.data
serializer = TestMemberSerializer(data=reqData)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
...
@api_view(['POST'])
어노테이션 지정하여 해당 view에 접근했을 때 POST
메소드로 데이터를 전송하는 화면이 뜨도록 합니다.
그리고 데이터를 입력하여 POST버튼을 눌러 데이터가 전달되면 is_valid()
함수로 데이터의 유효성을 확인한 뒤 성공하면 save()
함수로 DB에 삽입하고, 유효하지 않으면 400 Bad Request
라는 상태코드를 넘겨주도록 했습니다. 이번에는 실패시 응답에 200 OK
가 아닌 HttpStatusCode를 넘겨주기 위해 status
모듈을 import 시켜주었습니다.
그리고 test_app/urls.py에 해당 view가 호출될 url를 추가시켜 줍니다.
...
urlpatterns = [
path("member", views.setTestMember, name="setMembers"),
...
]
...
이제 서버를 기동시켜 브라우저에서 http://127.0.0.1:8000/test/member/
로 접근해봅시다.
정상적으로 작성됐다면 다음과 같은 화면이 뜨게 됩니다.
해당 페이지 하단의 입력 항목들을 채워 넣고 POST 버튼을 누릅니다.
Media type : application/json
Content :
{
"name" : "peter",
"age" : 17,
"created_at" : "2023-07-09 23:21:44"
}
요청 성공
위 그림과 같이 성공응답과 삽입된 데이터 내용이 표시되며, 실제 DB에서 조회시에도 데이터가 삽입된 것을 확인할 수 있습니다.
요청 실패
요청 실패시에는 코드에서 작성한 것과 같이 400 Bad Request
상태코드가 전달되고, 어떤 부분에서 실패가 났는지에 대한 내용이 표시됩니다.