If you're doing REST-based web service stuff... you should ignore
request.POST.
" 만약에 당신이 REST 기반의 웹 서비스를 하고있다면**request.POST
는 반드시 무시**해야한다.
<aside>
💡 REST Framework의 Request
클래스는 기존 HttpRequest
를 한층 확장해서 REST Framework을 위한 유연한 파싱과 요청 인증을 지원해준다.
</aside>
REST Framework의 Request
객체는 사용자가 요청들을 보통의 form data
대하듯이 같은 방식으로 JSON 데이터와 다른 미디어 타입들을 대할 수 있도록 유연한 request
파싱을 제공한다.
request.data
는 request body로 부터 parsed된(분석된) 컨텐츠를 반환한다.
기존에 있던 request.POST
와 request.FILES
속성과 비슷하지만 아래점들이 다르다:
파일과 파일이 아닌 입력을 포함한 분석된(parsed) 모든 컨텐츠를 포함한다.
POST
가 아닌 HTTP 메소드의 컨텐츠 파싱을 지원한다.
즉, 사용자는 PUT
과 PATCH
요청의 컨텐츠를 접근할 수 있다.
그저 form data를 지원하는 것이 아니라 REST Framework의 유연한 요청 파싱을 지원한다.
예를 들어, 사용자는 들어오는 JSON 데이터를 들어오는 form data와 같은 방식으로 처리할 수 있다.
request.query_params
는 유의어인 **request.GET
보다 더 정확한 이름**이다.
REST Framework는 기존 장고의 request.GET
이 아닌 **request.query_params
를 사용하기를 추천**한다.
이런 컨벤션이 사용자의 코드베이스(소스 코드의 집합)이 더 정확하고 명확할 수 있도록 도와준다.
(이 것은 GET 요청 뿐만 아니라 query parameter를 포함하는 모든 HTTP 메소드 포함한다)
APIView
클래스나 @api_view
데코레이터가 뷰의 parser_classes
세트 기반이나, DEFAULT_PARSER_CLASSES
세팅을 기반으로 Parser
인스턴스들의 리스트로 속성이 자동적으로 세팅되도 보장한다.
보통 사용자가 이 속성에 접근할 필요는 없다.