만약 당신이 REST 기반 웹 서비스 작업을 하고 있다면... request.POST는 무시하는 것이 좋습니다.— Malcom Tredinnick, Django 개발자 그룹REST 프레임워크의 Request 클래스는 표준 HttpRequest를 확장하여, REST 프레
기본 HttpResponse 객체와는 달리, TemplateResponse 객체는 뷰에서 응답을 계산하는 데 제공된 컨텍스트의 세부 정보를 유지합니다. 최종 응답의 출력은 나중에 응답 처리 과정에서 필요할 때까지 계산되지 않습니다.— Django 공식 문서REST 프레
클래스 기반 뷰 (Class-based Views) > Django의 클래스 기반 뷰는 이전의 뷰 스타일에서 환영할 만한 변화입니다. — Reinout van Rees REST 프레임워크는 Django의 View 클래스를 서브클래싱한 APIView 클래스를 제공합니다
Django의 제너릭 뷰는 일반적인 사용 패턴을 위한 단축키로 개발되었습니다. 이 뷰는 뷰 개발에서 자주 사용되는 특정 관용구와 패턴을 추상화하여, 데이터를 위한 일반적인 뷰를 반복하지 않고도 빠르게 작성할 수 있도록 돕습니다.— Django Documentation클
라우팅을 통해 요청에 사용할 컨트롤러가 결정되면, 컨트롤러는 요청을 처리하고 적절한 출력을 생성하는 역할을 담당합니다.— Ruby on Rails 문서Django REST 프레임워크에서는 관련된 여러 뷰의 로직을 하나의 클래스인 ViewSet으로 결합할 수 있습니다.
리소스 라우팅은 특정 리소스 컨트롤러에 대한 모든 공통 경로를 신속하게 선언할 수 있게 해줍니다. 인덱스 등의 개별 경로를 선언하는 대신, 리소스 경로는 한 줄의 코드로 이를 선언합니다.— Ruby on Rails DocumentationRails와 같은 일부 웹 프레
기계가 상호작용하는 웹 서비스는 단순한 form 데이터보다 더 복잡한 데이터를 전송하기 때문에, form 인코딩 방식보다는 더 구조화된 형식을 사용하여 데이터를 전송하는 경향이 있습니다.— 말콤 트레디닉, Django 개발자 그룹REST 프레임워크에는 여러 가지 내장
TemplateResponse 인스턴스가 클라이언트로 반환되기 전에 렌더링되어야 합니다. 렌더링 과정은 템플릿과 컨텍스트의 중간 표현을 받아 클라이언트에게 제공할 수 있는 최종 바이트 스트림으로 변환하는 작업입니다.— Django 문서(https://docs.
Russell Keith-Magee는 시리얼라이저의 확장 가능성에 대해 언급하며, 이를 해결하기 위해서는 신중한 설계 작업이 필요하다고 강조했습니다. 시리얼라이저는 복잡한 데이터를 네이티브 파이썬 데이터 유형으로 변환하여 JSON, XML 등의 콘텐츠로 쉽게 렌더링할
Form 클래스에서 각 필드는 데이터 유효성 검사를 수행할 뿐만 아니라 데이터를 "정리"하고, 일관된 형식으로 정규화하는 역할을 담당합니다.— Django 문서(https://docs.djangoproject.com/en/stable/ref/forms/api/
데이터 구조는 프로그래밍의 중심이며, 알고리즘이 아니다.— 롭 파이크관계 필드는 모델 관계를 표현하는 데 사용됩니다. 이들은 ForeignKey, ManyToManyField, OneToOneField 관계뿐만 아니라, 역참조 관계 및 GenericForeignKey와
validator는 서로 다른 유형의 필드 간에 유효성 검사 로직을 재사용할 때 유용할 수 있습니다.\-Django 문서대부분의 경우 REST 프레임워크에서의 유효성 검사는 기본 필드 유효성 검사에 의존하거나, 직렬화기(serializer) 또는 필드 클래스에서 명시적
인증 (Authentication) > 인증은 플러그인 형태로 구성되어야 합니다. — 제이콥 카플란-모스(Jacob Kaplan-Moss), "REST worst practices" 중에서 인증은 들어오는 요청을 식별하는 자격 증명(예: 요청을 보낸 사용자 또는 요
인증(Authentication) 또는 식별(Identification)만으로는 정보나 코드에 대한 접근 권한을 얻기에 충분하지 않은 경우가 많습니다. 접근을 요청하는 엔티티는 승인(Authorization) 을 받아야 합니다.— Apple 개발자 문서(https&#x
“한 여자가 있었는데, 그녀는 매우 예리한 의식을 가지고 있었지만 거의 기억력이 없었다... 그녀는 일할 만큼의 기억은 가지고 있었고, 열심히 일했다.”\- 리디아 데이비스 (Lydia Davis)DRF의 캐싱은 장고(Django)에서 제공하는 캐싱 기능들과 잘 호환됩
HTTP/1.1 420 Enhance Your Calm\- 트위터 API의 비율 제한 응답스로틀링은 권한 부여 여부를 결정한다는 점에서 권한과 유사합니다. 스로틀링은 일시적인 상태를 나타내며, 클라이언트가 API에 요청할 수 있는 빈도를 제어하는 데 사용됩니다.권한과
Manager가 제공하는 기본 QuerySet은 데이터베이스 테이블의 모든 객체를 설명합니다. 그러나 보통은 전체 객체 집합 중 일부만 선택해야 합니다.— Django 문서(https://docs.djangoproject.com/en/stable/topics/

장고는 페이지가 나뉜 데이터를 관리하는 데 도움이 되는 몇 가지 클래스를 제공합니다. 이 데이터는 여러 페이지로 나뉘어 있으며, "이전/다음" 링크를 포함합니다.— 장고 공식 문서REST 프레임워크는 커스텀 가능한 페이지네이션 스타일을 지원합니다. 이를 통해 대규모 결
버전 관리된 인터페이스는 배포된 클라이언트를 정중하게 종료하는 방법일 뿐이다.— Roy FieldingAPI 버전 관리를 통해 서로 다른 클라이언트 간의 동작을 변경할 수 있습니다. REST 프레임워크는 여러 가지 다른 버전 관리 방식들을 제공합니다.버전 관리는 들어오
HTTP는 여러 가지 메커니즘을 통해 콘텐츠 협상을 지원합니다. 콘텐츠 협상이란, 여러 표현 방식이 있을 때 주어진 응답에 대해 가장 적합한 표현 방식을 선택하는 과정입니다.— RFC 2616, Fielding 등.콘텐츠 협상은 클라이언트 또는 서버의 선호도에 따라 여
OPTIONS 메서드는 리소스와 관련된 옵션 또는 요구 사항을 결정하거나, 리소스 작업을 암시하거나 리소스를 가져오는 작업을 시작하지 않고 서버의 기능을 파악할 수 있게 해줍니다.— RFC7231, 섹션 4.3.7.(https://tools.ietf.org/h
머신이 읽을 수 있는 스키마는 API를 통해 제공되는 리소스가 무엇인지, 해당 리소스의 URL이 무엇인지, 어떻게 표현되는지, 그리고 어떤 작업을 지원하는지 설명합니다.— Heroku, Heroku 플랫폼 API의 JSON 스키마REST 프레임워크에서 제공하는 Open
섹션 6.2.1에서는 콘텐츠 협상(content negotiation)이 항상 사용되어야 한다고 말하지 않습니다.— Roy Fielding, REST 토론 메일링 리스트웹 API에서 흔히 사용하는 패턴 중 하나는 URL에 파일 확장자를 추가하여 특정 미디어 타입에 대한
REST 아키텍처 스타일을 다른 네트워크 기반 스타일과 구분하는 핵심 기능은 구성 요소 간의 균일한 인터페이스에 중점을 둔다는 점입니다.— Roy Fielding, Architectural Styles and the Design of Network-based Softw
예외 처리는... 프로그램 구조의 중앙 또는 상위 단계에서 에러 처리를 깔끔하게 조직할 수 있게 해줍니다.— Doug Hellmann, Python Exception Handling TechniquesREST 프레임워크의 뷰는 다양한 예외를 처리하고 적절한 오류 응답을
418 I'm a teapot - 주전자로 커피를 끓이려고 시도하면 "418 I'm a teapot" 오류 코드가 발생해야 합니다. 반환되는 엔터티 본문은 짧고 뚱뚱할 수 있습니다.— RFC 2324, 하이퍼 텍스트 커피포트 제어 프로토콜 (Hyper Text Coff
테스트가 없는 코드는 설계부터 망가진 코드다.— Jacob Kaplan-MossREST framework는 Django의 기존 테스트 프레임워크를 확장하는 몇 가지 헬퍼 클래스들을 포함하고 있으며, API 요청을 더 쉽게 지원합니다.Django의 기존 RequestFa
네임스페이스는 정말 훌륭한 아이디어죠. 더 많이 활용해봅시다!— The Zen of PythonREST framework의 설정은 모두 단일 Django 설정 내에 네임스페이스화되어 있으며, REST_FRAMEWORK라는 이름의 설정에 포함됩니다.예를 들어, 프로젝트의