TL;DR

  • Django용 완전한 타입 지원·고속·유연·비동기 준비형 REST API 프레임워크인 django-modern-rest가 기여자 32명, 커밋 144개로 개발한 역대 가장 빠른 릴리스 0.16.0을 공개함.
  • PydanticFastSerializer의 역직렬화가 2.2배, 직렬화가 1.33배 빨라지고, BodyMsgspec은 msgspec.Struct로 요청 바이트를 직접 디코딩해 Body보다 1.6배 빠름.
  • 동기·비동기 커서 페이지네이션, JWT·토큰·세션 인증용 뷰, CSRF 처리, TypeVar 기본값 등 API 개발 기능이 추가됨.
  • 설정 병합 규칙을 없애고 엔드포인트 설정이 컨트롤러 설정보다 우선하며, 명시적 [] 또는 None은 비활성화하고 EMPTY는 상위 설정으로 넘어가도록 함.
  • 패키지에 버전별 에이전트 스킬과 $dmr-upgrade 마이그레이션 스킬을 포함하고, 문서 페이지를 모두 마크다운으로 제공함.

프로젝트 소개

  • django-modern-rest는 Django에서 REST API를 만들기 위한 타입 완전 지원·고속·유연·비동기 준비형 프레임워크임.
  • Pydantic, msgspec, attrs를 비롯한 다양한 모델을 지원함.
  • 예시에서는 Pydantic 모델로 사용자 생성 요청과 응답을 정의하고, Controller와 PydanticFastSerializer를 사용해 요청 본문을 검증한 뒤 UUID를 생성해 응답 모델을 반환함.
  • 내장 인증은 세션, JWT 헤더와 쿠키를 지원함.
  • 디버그 모드에서 OpenAPI 명세를 단일 기준으로 삼아 요청과 응답을 검증함.
  • 내장 콘텐츠 협상을 제공하며 콘텐츠 유형별 조건부 요청·응답 모델을 지원함.
  • 유연한 오류 처리와 선택적 오류 모델 협상 및 완전한 사용자 지정을 지원함.
  • SSE와 JsonLines 스트리밍을 지원함.
  • 타입이 지정된 추상화를 직접 만들고 안전하게 재사용할 수 있도록 코드 재사용을 핵심 기능으로 둠.
  • schemathesis를 활용한 OpenAPI 커버리지 테스트와 속성 기반 테스트 등 고급 테스트 전략을 지원함.
  • 스킬, 컨텍스트, MCP 등을 포함한 AI 기능을 핵심 기능으로 제공하되, 불필요한 AI 생성 콘텐츠는 포함하지 않는다는 설명임.
  • 저장소: https://github.com/wemake-services/django-modern-rest
  • 문서: https://django-modern-rest.readthedocs.io

0.16.0 릴리스

  • opensource_september 커뮤니티 행사에서 기여자 32명과 커밋 144개가 참여해 개발한 릴리스로, 프로젝트의 역대 가장 빠른 릴리스임.

성능

  • PydanticFastSerializer: 역직렬화 2.2배, 직렬화 1.33배 향상.
  • 새 BodyMsgspec 컴포넌트: 요청 바이트를 msgspec.Struct로 직접 디코딩하며 Body보다 1.6배 빠름.
  • msgspec 요청 컨텍스트 검증: 2배 빠름.
  • 헤더별 콘텐츠 협상 결과를 메모이제이션하며, 브라우저 스타일 Accept 헤더에서 최대 65배 빠름.
  • msgspec 0.22.0, 비용이 더 낮은 검사, 쿠키, 헤더 및 응답.

기능

  • 컴포넌트 기본값: Body[Model | None] = None 사용 가능.
  • JWT·토큰·세션 인증용 concrete_views: urls.py에 한 줄로 로그인 경로를 정의하고 뷰 코드는 작성하지 않는 방식.
  • 동기 및 비동기 API를 지원하는 커서(키셋) 페이지네이션.
  • 직접 만든 타입 지정 @modify 및 @validate 매개변수를 위한 extras=.
  • 재사용 가능한 컨트롤러를 위한 PEP 696 TypeVar 기본값.
  • 적절한 403 명세와 REST 오류 응답을 제공하는 일급 CSRF 지원.
  • external_re_path 및 중첩 external_path.
  • 오류 처리기에서 새 오류를 다시 발생시켜 다음 계층으로 전달하는 기능.
  • OpenAPI: 모든 객체의 x-extensions, 게이트웨이 및 mTLS 보안, OpenAPI 3.2 필드, 컨트롤러 수준의 태그·deprecated·servers, 결정론적 스키마 출력.

모든 설정에 적용되는 단일 규칙

  • 설정은 더 이상 계층 간에 병합되지 않음.
  • 엔드포인트 설정이 컨트롤러 설정보다 우선하고, 컨트롤러 설정은 일반 설정값보다 우선함.
  • 명시적 [] 또는 None은 설정을 비활성화하고, EMPTY는 상위 설정으로 넘어감.
  • 설정을 병합하려면 @modify(auth=[*auth, other])처럼 명시적으로 병합함.

AI 도구