extend_schema {drf_spectacular}
- ref:
summary, example, respone, request, parameter를 정의해서 OpenAPI 문서의 내용을 추가하기 위해 사용되는 데코레이터 함수이다.
예시:
class CalendarCreateView(APIView):
@extend_schema(
summary="캘린더 생성",
description="새 캘린더를 생성합니다.",
request=CalendarCreateSerializer,
responses={201: CalendarDetailSerializer},
tags=["Calendars"],
)
def post(self, request):
# Placeholder implementation
return Response({"message": "Calendar created"}, status=status.HTTP_201_CREATED)
request, response, parameter에 Serializer 클래스 또는 Serializer 인스턴스가 들어갈 수 있다.#
Serializer 인스턴스가 들어가는 경우는 Serializer에 many=True
옵션과 같은 경우에 대응할 수 있게된다.
예시:
class CalendarListView(ListAPIView):
@extend_schema(
summary="캘린더 목록 조회",
description="유저가 등록한 모든 캘린더를 불러옵니다.",
responses={200: CalendarDetailSerializer(many=True)},
tags=["Calendars"],
)
def get(self, request):
pass
예시 Swagger Response:
[
{
"id": 0,
"user": "string",
"created_at": "2024-11-12T14:36:54.956Z",
"updated_at": "2024-11-12T14:36:54.956Z",
"title": "string"
}
]