(Django) JsonResponse

Kepler·2020년 2월 3일
0

JsonResponse:

  • HttpResponse의 subclass로, JSON-encoded response를 생성할수 있게 해준다.
  • 대부분의 기능은 superclass에서 상속받는다.
  • default Content-Type header = application/json
>>> from django.http import JsonResponse       # import from django.http
>>> response = JsonResponse({'foo': 'bar'})    # 첫번째  argument는 dictionary 이어야한다 
>>> response.content   # result : {"foo": "bar"}'
# dictionary이외를 받을 경우, 두번째 argument를 safe=False로 설정해야한다.
# Otherwise, TypeError발생
>>> response = JsonResponse([1,2,3], safe=False) 
>>> response.content  # result : [1,2,3]

언제 JsonResponse를 쓰나요?

JsonResponse는 response를 커스터마이징 하여 전달하고 싶을때, http status code에 더하여 메세지를 입력해서 전달할 수 있다.

이 메세지는 프론트엔드 개발자가 보게 되는데, 실무에서는 프론트엔드 개발자와 이미 약속한 메세지를 표시하게 된다. 딱히 약속한 메세지가 없는경우는 단순히 HttpResponse 로 status code만 전달해주어도 상관없다.

메세지를 입력할 경우 주의점은, 프론트엔드 개발자가 에러 메세지를 확인하기 용이하도록 규칙을 정하는 것이다.
대표적으로 space를 쓰지않고 underscore를 사용하거나, value값은 대문자로 쓰는것이 있다.

또한, 보안상 JsonResponse의 메세지 내용은 너무 자세하게 적지 않는것이 좋다. (that would be too hacker friendly..)


참조링크:
https://docs.djangoproject.com/en/2.2/ref/request-response/#jsonresponse-objects

profile
🔰

1개의 댓글

comment-user-thumbnail
2023년 2월 6일

감사합니다.

답글 달기