[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와 Redoc 타입 중 보기 좋은 UI를 선택해 사용하면 됩니다.
문서에서 바로 API 테스트를 할 수 있습니다.
반응형
'Programming > Django' 카테고리의 다른 글
[Django Apscheduler] django에 스케줄러 도입해 batch 만들기 (0) | 2023.01.30 |
---|---|
[Django 핵심 원리] MTV 공부 전에 알면 좋을 것들 (0) | 2022.04.14 |