更改 API 版本控制策略

问题描述

我正在使用目前正在生产的 django rest framework 开发 API。使用的版本控制策略是 namespace versioning。我想改用 acceptheader versioning,因为它似乎更适合该项目。

有没有办法在不破坏以前的 API 版本的情况下顺利进行更改。

解决方法


版本控制非常简单。
在您的应用程序中创建文件夹并将其命名为 `v1`
喜欢这张图:
https://i.stack.imgur.com/O8FGC.png
yourApp > urls.py 应该是这样的:
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('v1/',include('api.v1.urls')),]

然后在 v1 文件夹中创建 `urls.py`
它应该是这样的:
from django.urls import path,include
from api.v1.classes.Plan import listPlan
from api.v1.classes.preInvoce import preInvoce    

urlpatterns = [
    path('plan/list',listPlan.as_view(),name="listPlans"),path('plan/buy',preInvoce.as_view(),name="preInvoice"),]

如果您想要版本 2,您需要创建名为 v2 的新文件夹并在其中包含 urls.py。
你的应用 urls.py 应该是这样的:
from django.contrib import admin
from django.urls import path,path('v2/',include('api.v2.urls')),]

把你自己的和新的 url 放在 v2/urls.py
您的最终 v1 网址如下:
localhost:8000/v1/planList

您的最终 v2 网址如下:
localhost:8000/v2/newUrlInV2

v1 和 v2 网址都应该正常工作。