[drf-yasg] Django RESTful API 문서 만들기

2022. 3. 6. 22:54
반응형
Django 서버 API를 하나하나 파악하는 것은 효율적이지 못하므로, 자동 문서화 도구를 사용해서 적용된 API를 파악하고자 도입하였습니다. Djnago에서 사용 가능한 API 문서 자동화에는 Django REST Swagger 라이브러리 등 몇가지가 있습니다. 
최근에 drf-yasg 라이브러리가 좋다는 글들이 많아 보였고, 내가 원하는 기능을 충분히 제공하고 업데이트도 잘해주는 것 같아 비교 없이 drf-yasg를 도입하였습니다.

본 글은 drf-yasg를 사용하기 원하는 사용자가 참고하시면 좋을듯합니다.

🔹 적용 하기

Django REST framework(DRF)가 적용된 프로젝트 입니다.

라이브러리 설치

pip install drf-yasg

setting.py 설정

INSTALLED_APPS = [
    ...
    'drf_yasg',
]

url 등록

from django.contrib import admin
from django.urls import path, include

# drf-yasg
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
from rest_framework import permissions

urlpatterns = [
    path('admin/', admin.site.urls),
    '''
        서비스에 사용되는 url
    ''',
]

schema_view = get_schema_view(
    openapi.Info(
        title='API 문서 제목',
        default_version='API 버전',
        description=
        '''
        API 문서 설명

        작성자 : ...
        ''',
        terms_of_service='',
        contact=openapi.Contact(name='이름', email='이메일'),
        license=openapi.License(name='API 문서 이름')
    ),
    public=True,
    permission_classes=(permissions.AllowAny,),
    patterns=urlpatterns,
)

# drf_yasg url 
urlpatterns += [
    path('swagger<str:format>', schema_view.without_ui(cache_timeout=0), name='schema-json'),
    path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

접속

python manage.py runserver

http://127.0.0.1:8000/swagger/ 또는 http://127.0.0.1:8000/redoc/ 접속하여 확인

 

 

🔹 결과

Swagger 스타일

Swagger와 Redoc 타입 중 보기 좋은 UI를 선택해 사용하면 됩니다.

문서에서 바로 API 테스트를 할 수 있습니다.

반응형

BELATED ARTICLES

more