如何控制 Django Rest Framework (DRF) 中的版本控制

San*_*dar 4 django django-models django-views django-rest-framework drf-nested-routers

我想知道控制移动应用程序 API 版本的最佳实践是什么。

要求

  • 如果我更改数据库中的某些内容,应用程序的先前版本不应受到影响。
  • 目前我正在做...
path('v1/auth/', include('authentication.urls')),
path('v2/auth/', include('authentication.urls2')), # Example
path('v1/api/', include('contentstudio.urls')),
Run Code Online (Sandbox Code Playgroud)

Fel*_*löf 6

Django REST Framework 支持许多不同的 api 版本控制方法。查看文档以找到最适合您的一个。

根据文档,该AcceptHeaderVersioning方法“通常被认为是最佳实践”。IE。您可以将版本放入 Accept 标头中,如下所示:

Accept: application/json; version=1.0
Run Code Online (Sandbox Code Playgroud)

使用这些方法中的任何一种,您都可以在视图中访问request.version以确定不同版本的行为。