drf-spectacular 에서 query param을 이용한 version 별 api 표기
API 개발 하다보면 하위호환성을 지키기 위해 versioning 을 해야할 때가 있다. drf 에서는 여러가지 versioning 방법을 제공 중인데, swagger url 을 설정하기 번거롭다. 때문에 drf 에서는 원하는 versioning 을 정의하고 swagger 에서는 QueryParameterVersioning 으로 접근 가능한 방법을 소개한다. drf setting REST_FRAMEWORK = { ... "DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning", "DEFAULT_VERSION": "1", "ALLOWED_VERSIONS": ["1", "2"], } 예제에서는 drf 에서는 accept header 를 이용한 versioning 을 사용한다. 그 외는 문서 참조 drf-spectacular url 정의 및 setting from rest_framework.versioning import QueryParameterVersioning urlpatterns += [ ... path('schema/', SpectacularAPIView.as_view(versioning_class=QueryParameterVersioning), name='schema'), path('schema/swagger-ui/', SpectacularSwaggerView.as_view(url_name='api:schema'), name='swagger-ui'), path('schema/redoc/', SpectacularRedocView.as_view(url_name='api:schema'), name='redoc'), ] swagger-ui 페이지가 query param에 의해 version 을 변경할 수 있도록 view 에 versioning_class 를 QueryParameterVersioning 으로 정의한다. ...