django 4.1.3
djangorestframework 3.14.0
DRF使用版本控制:
request.version,request.versioning_scheme 打印为None,dir(request),又有这两个属性
url访问:http://localhost:8000/api/v2/version/
视图类:
class VersionView(APIView):
authentication_classes = []
def get(self, request, *args, **kwargs):
print(request)
# 1. 获取版本
print(request.version)
# 2. 获取处理版本的对象
print(request.versioning_scheme)
return Response('version')
路由:
urlpatterns = [
re_path(r'^(?P<version>[v1|v2]+)/version/$', views.VersionView.as_view()),
]
Setting:
REST_FRAMEWORK = {
# 版本控制
"DEFAULT_VERSIONING_CLASS": "rest_framework.versioning.URLPathVersioning",
"DEFAULT_VERSION": "v1",
"ALLOWED_VERSIONS": ["v1", "v2"],
"VERSION_PARAM": 'version',
}