DRF-Spectacular와 스키마: Django REST Framework 문서 자동화

이도현·2023년 12월 10일
0

Django 공부

목록 보기
5/8

서론

API 개발에 있어 문서화는 매우 중요한 부분입니다. DRF-Spectacular는 Django REST Framework(DRF)를 위한 OpenAPI 스키마 생성 도구로, 이 과정을 자동화합니다.

스키마란?

스키마는 API의 구조를 설명하는 문서로, 엔드포인트, 파라미터, 응답 형식 등을 정의합니다.

DRF-Spectaclar의 기능

이 도구는 DRF API 뷰에서 자동으로 OpenAPI 스키마를 생성합니다. 이를 통해 API 문서화 작업이 대폭 간소화됩니다.

설치 및 사용법

설치

pip install drf-spcectacular

이 후 settings.py에 추가

사용법

타이틀, 버전 및 설명 설정

SPECTACULAR_SETTINGS = {
    'TITLE': 'My API Service',
    'DESCRIPTION': 'A detailed description of my API.',
    'VERSION': '1.0.0',
}

스키마 노출 설정

SPECTACULAR_SETTINGS = {
    'SERVE_INCLUDE_SCHEMA': False,
}

인증 방식 설정

SPECTACULAR_SETTINGS = {
    'SECURITY': [
        {'bearerAuth': []}
    ],
    'COMPONENT_SPLIT_REQUEST': True,
}
SPECTACULAR_SETTINGS = {
    'EXTENSIONS': {
        'x-logo': {
            'url': 'https://example.com/logo.png',
            'backgroundColor': '#FFFFFF',
            'altText': 'Logo'
        }
    }
}
SPECTACULAR_SETTINGS = {
    'SCHEMA_PATH_PREFIX': r'/api/v[0-9]',
    'SCHEMA_PATH_PREFIX_TRIM': True
}

이 설정은 URL 패턴에 따라 스키마를 필터링하는 데 사용됩니다. 여기서는 '/api/v1', '/api/v2' 등과 같은 URL 패턴을 가진 경로만 스키마에 포함됩니다.

장점

API 변경 사항이 있을 때마다 문서를 수동으로 업데이트할 필요가 없어집니다.

대안

Swagger

Swagger는 API 문서를 자동으로 생성하는 데 사용되며, DRF와 함께 사용할 수 있는 drf-yasg패키지를 통해 통합됩니다. 이는 사용자 친화적인 UI와 광범위한 설정 옵션을 제공합니다.

Redoc

Redoc은 OpenAPI 스펙을 기반으로 하는 API 문서와 도구입니다. DRF와 통합되어 API문서를 보다 세련되고 명확하게 표시할 수 있습니다.

결론

DRF-Spectacular는 DRF는 기반 API의 문서화 과정을 간편하고 정확하게 만들어 줍니다. API 개발 프로세스의 효율성을 높이고 싶은 Django 개발자에게 적그 추천합니다.

profile
좋은 지식 나누어요

0개의 댓글