🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리

2025. 6. 9. 19:12·프로젝트

Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리


1️⃣ 왜 Swagger 적용했나?

  • 프론트엔드 개발자랑 백엔드 개발자가 API 스펙을 맞추기 위해
  • API 요청/응답 테스트를 쉽게 하기 위해
  • API 문서를 자동 생성해서 관리하기 위해

2️⃣ 문제 상황

문제설명
drf-yasg 사용 ✅ Django 5.2 버전과 호환 안 됨 (TemplateDoesNotExist 에러)
Swagger UI 안 뜸 ❌ drf-yasg/swagger-ui.html 파일을 못 찾아서 에러
호환성 문제 Django 5.x 이상에서는 drf-yasg 대신 drf-spectacular 권장
 

3️⃣ 해결 방법: drf-spectacular로 변경

✅ drf-spectacular 설치

pip install drf-spectacular
 

✅ settings.py 설정

INSTALLED_APPS = [
    # ...
    'rest_framework',
    'drf_spectacular',
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ),
    'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}
 

✅ urls.py 수정

from django.contrib import admin
from django.urls import path
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView

urlpatterns = [
    path('admin/', admin.site.urls),
    
    # API 스키마 JSON
    path('api/schema/', SpectacularAPIView.as_view(), name='schema'),

    # Swagger UI
    path('swagger/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
]
 

✅ 서버 실행

python manage.py runserver
 

✅ Swagger 접속

http://localhost:8000/swagger/

4️⃣ 최종 결과

기능주소
Swagger UI 문서 http://localhost:8000/swagger/
OpenAPI 스키마 JSON http://localhost:8000/api/schema/
 

🔥 추가 팁

  • Swagger에서는 API 요청 직접 해볼 수도 있어.
  • drf-spectacular은 OpenAPI 3.0 완벽 지원.
  • 프론트 개발자에게 이 URL 공유하면 → mock 서버 없이 개발 가능.

📚 요약

Django 5.2 + DRF + drf-spectacular 조합으로

👉 Swagger API 문서 자동 생성 성공! 🚀

'프로젝트' 카테고리의 다른 글

📚 Django 이메일 인증 기능 추가 (SMTP, 인증 토큰 발송) (10)  (0) 2025.06.10
📚 회원 탈퇴(DELETE) 기능 정리 (10)  (0) 2025.06.10
🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙  (0) 2025.06.09
📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용  (0) 2025.06.09
📮4. Django DB 연결 대기 커스텀 커맨드 제작 및 GitHub Actions 적용기  (0) 2025.06.09
'프로젝트' 카테고리의 다른 글
  • 📚 Django 이메일 인증 기능 추가 (SMTP, 인증 토큰 발송) (10)
  • 📚 회원 탈퇴(DELETE) 기능 정리 (10)
  • 🚩[3단계-1] 내 프로젝트 맞춰 만들어보는 API 스펙
  • 📌 [3단계] DRF(Django REST Framework) 설치 및 Docker 적용
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787) N
      • Python (32)
      • 프로젝트 (110) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    smartphonedurability
    homebartrend
    chatgpterror
    btsreunion
    youngprofessionals
    gpterror
    remittance
    RM
    travel ban
    self-growth
    bts
    btsdischarge
    livebroadcast
    newpoliticalparty
    college reunions
    americaparty
    basalcellcarcinoma
    titaniumcase
    trumpmuskclash
    americanlaw
    뷔
    hotcoffeecase
    global politics
    chinanightlife
    urbantrends
    btscomeback
    classaction
    lawsuitculture
    btsjungkook
    life reflection
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🚩[3단계-1] Django 5.2 + DRF + Swagger (drf-spectacular) 적용 정리
상단으로

티스토리툴바