实现方式
自定义路由
自定义版本号,并且路由分发到相应的API app。
urlpatterns = [
path('api/v1/', include(apiv1.urls)),
path('api/v2/', include(apiv2.urls))
]
drf
drf 提供了常用的两种类,使用方法有局部使用和全局使用,不再赘述。
from rest_framework.versioning import URLPathVersioning,QueryParameterVersioning
URLPathVersioning
通过有名分组获取版本信息
urlpatterns = [
path('api/(?P<version>\w+)/', include(api.urls)),
]
在drf的视图类中,可以通过request.version
获取版本信息,返回不同的数据。
QueryParameterVersioning
通过路由传参获取版本信息
http://127.0.0.1:8000/api/user/?version=v1
urlpatterns = [
path('api/', include(api.urls)),
]
在视图类中同样可以通过request.version
获取版本信息,if
判断后就可以根据版本做出相应的响应。