如何在 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 以更好地配置版本控制
我想知道控制移动应用程序 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 以更好地配置版本控制