drf 基于URL路由版本

路由

urlpatterns = [
    path('api/<str:version>/user/', views.UserView.as_view(),name='user'),
]

settings

REST_FRAMEWORK = {
     # 版本配置
    "DEFAULT_VERSIONING_CLASS": "rest_framework.versioning.QueryParameterVersioning",
    "DEFAULT_VERSION": "v1",
    "ALLOWED_VERSIONS": ["v1"],
    "VERSION_PARAM": "version",
}

view

from rest_framework.versioning import  URLPathVersioning

class UserView(OrPermissionAPIView):
    versioning_class = URLPathVersioning

    def get(self, request, *args, **kwargs):
        print('request.version', request.version)
        url = request.versioning_scheme.reverse(viewname='user', request=request)
        print('url', url)
        return Response({'status': 'UserView'})

image

posted @ 2022-10-03 14:53  Sherwin_szw  阅读(17)  评论(0编辑  收藏  举报