pip install django djangorestframework
pip install drf_yasg
# settings.py
INSTALLED_APPS = [
'djangorestframework',
'drf_yasg',
]
urls.py
from django.contrib import admin
from django.urls import include, path, re_path
# swagger 설정
from rest_framework.permissions import AllowAny
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_url_patterns = [
path('order/', include('order.urls')),
]
schema_view_v1 = get_schema_view(
openapi.Info(
title="Open API",
default_version='v1',
description="swagger using",
terms_of_service="https://www.google.com/policies/terms/",
),
public=True,
permission_classes=(AllowAny,),
patterns=schema_url_patterns,
)
urlpatterns = [
path('order/', include('order.urls')),
path('admin/', admin.site.urls),
# path('',include('blog.urls')),
re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view_v1.without_ui(cache_timeout=0), name='schema-json'),
re_path(r'^swagger/$', schema_view_v1.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
re_path(r'^redoc/$', schema_view_v1.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]
order/views.py
from drf_yasg.utils import swagger_auto_schema
@swagger_auto_schema(method='GET')
@api_view(['GET'])
def order_list(request):
...
@swagger_auto_schema(method='POST', request_body=OrderSerializer)
@api_view(['POST'])
def order_create(request):
...