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

How to control versioning in Django Rest Framework (DRF)

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

要求

path('v1/auth/', include('authentication.urls')),
path('v2/auth/', include('authentication.urls2')), # Example
path('v1/api/', include('contentstudio.urls')),

Django REST Framework 支持许多不同的版本控制方法 api。查看 docs 以找到最适合您的选项。

根据文档,AcceptHeaderVersioning 方法 “通常被认为是最佳实践”。 IE。你把版本放在 Accept header 中,像这样:

Accept: application/json; version=1.0

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

AcceptHeaderVersioning 是最好的方法,但是当您有很多版本时,它可能看起来很复杂。我选择命名空间是因为它很容易实现。你可以在这里看到一个例子:sample from github

您还可以将 settings docs 添加到 settings.py 以更好地配置版本控制