Django-REST-Framework 튜토리얼 파트 2
-
요청과 응답
DRF의 진정한 핵심부
-
요청(Request) 객체
평범한 HttpRequest 객체를 확장하여 좀 더 유연하게 요청 파싱
-
request.data
객체의 핵심 속성
request.POST와 비슷하지만 웹 API에 좀 더 적합
여러 포맷(JSON, yaml) 대응해서 원하는 형태로 응답 객체 렌더링 해줌
-
-
응답(Response) 객체
TemplateResponse 타입
렌더링되지 않은 컨텐츠 불러와 클라이언트에게 리턴할 콘텐츠 형태로 변환
-
상태 코드
-
기존의 Django
읽기에도 어렵고 코드에 오류 있어도 발견하기 어려움
-
DRF
각 상태 코드에 대해 좀 더 명확한 식별자 제공
숫자로 된 식별자 사용하기 보다 문자 형식의 식별자 사용
-
-
API 뷰 래퍼
API view 작성하는데 사용
view에서 받은 Request에 몇몇 기능 더 하거나 컨텐츠가 잘 변환되도록 Response에 특정 context 추가
때에 따라 에러 처리도 함
특정 컨텐츠 형태에 대한 요청이나 응답 명시적으로 연결하지 않음(json, yaml 같은 포맷)
-
@api_view
데코레이터 함수
함수 기반 뷰에서 사용
-
APIView
클래스
클래스 기반 뷰에서 사용
-
-
URL 의 접미어를 통해 다른 포맷 제공
포맷의 접미어를 URL 형태로 전달받을 때 사용
format 키워드, format_suffix_patterns 패턴 추가로 사용
-
request에서의 포맷 지정
Accept 헤더, 포맷 접미어, Context-Type 헤더를 사용해 데이터 포맷 지정
-
-
탐색 가능한 API
API는 클라이언트의 요청에 따라 데이터 포맷 결정하여 응답
웹 브라우저의 요청에 대해서는 기본적으로 HTML 형태로 응답하는 덕분에 API를 웹 브라우저에서 탐색 가능
-
브라우저 에서 탐색 가능함
사용성 면에서 유용
API 쉽게 개발하고 사용하도록 도와줌
다른 개발자들이 API 파악하고 사용할 떄의 진입 장벽 낮춰줌
-
-