第 13 篇:DRF 框架之 API 版本管理 (2)

当然视图集别忘了在 router 中注册:

blogproject/urls.py # 仅用于 API 版本管理测试 router.register( r"api-version", blog.views.ApiVersionTestViewSet, basename="api-version" )

这相当于一次接口版本升级,我们再加入 v2 命名空间的接口:

urlpatterns = [ path("api/v1/", include((router.urls, "api"), namespace="v1")), path("api/v2/", include((router.urls, "api"), namespace="v2")), ]

可以看到,包含的 URL 都是一样的,只是 namespace 是 v2。

来测试一下效果,启动开发服务器,先访问版本号为 v1 的测试接口,请求返回结果如下,可以看到如期返回了 v1 版本下的内容:

GET /api/v1/api-version/test/ HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "version": "v1", "warning": "该接口的 v1 版本已废弃,请尽快迁移至 v2 版本" }

再访问版本号为 v2 的测试接口,返回的内容就是 v2 了。

GET /api/v2/api-version/test/ HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "version": "v2" }

对于其它接口,无论 v1,v2 版本的接口均可以访问,这样就相当于完成了一次兼容的接口升级。

第 13 篇:DRF 框架之 API 版本管理

关注公众号加入我们

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywzpy.html