오늘은 장고 REST Framework에서 swagger를 통해 API를 문서화 해보자.
먼저 drf-ysag에 대한 문서는 아래의 링크를 통해 이동할 수 있다. 상세한 정보를 원한다면 공식 문서를 활용하자.
https://drf-yasg.readthedocs.io/en/stable/
install
가상환경을 활성화 하고 install 하자.
pip install -U drf-yasg
settings.py
settings.py에 다음이 추가되어야 한다.
INSTALLED_APPS = [
...
'django.contrib.staticfiles', # required for serving swagger ui's css/js files
'drf_yasg',
...
]
urls.py
총 4가지의 엔드포인트를 추가할것이다.
- A JSON view of your API specification at /swagger.json
- A YAML view of your API specification at /swagger.yaml
- A swagger-ui view of your API specification at /swagger/
- A ReDoc view of your API specification at /redoc/
프로젝트의 urls.py에 다음을 추가한다.
...
from django.urls import re_path
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
...
schema_view = get_schema_view(
openapi.Info(
title="Snippets API",
default_version='v1',
description="Test description",
terms_of_service="https://www.google.com/policies/terms/",
contact=openapi.Contact(email="contact@snippets.local"),
license=openapi.License(name="BSD License"),
),
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
path('swagger<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'),
...
]
확인
runserver 해주고, /swagger/에 접근한다.
프로젝트의 urls.py에 다음을 추가한다.
그럼 다음처럼 api를 확인할 수 있다.
'Project > Team22' 카테고리의 다른 글
[Team22]django .env 환경변수 활용하기 (0) | 2024.02.15 |
---|---|
[Team 22] DRF - Mixins (0) | 2024.02.08 |
[Team 22] DRF - Generic API View (0) | 2024.02.08 |
[Team 22] DRF Authentication - dj-rest-auth (0) | 2024.02.08 |
[Team 22] Django REST framework (3) - Viewset (0) | 2024.02.03 |