【问题标题】:How to organize REST-API versioning the right way?如何以正确的方式组织 REST-API 版本控制?
【发布时间】:2018-07-18 14:11:00
【问题描述】:

我正在Django-REST-FrameWork上构建一个网站的后端,目前我有以下结构(下面显然只是其中的一部分):

project_root:
    apps:
        app1:
            models.py
            serializers.py
            views.py
            urls.py
        app2:
            models.py
            serializers.py
            views.py
            urls.py
    urls:
        urls.py - (Main project urls file)

一个端点:

http://localhost:8000/api/app1/
http://localhost:8000/api/app2/

如何添加版本控制?我应该为每个应用程序添加一个“v2”文件夹吗?

【问题讨论】:

    标签: django rest django-rest-framework


    【解决方案1】:

    对于每个新版本的 api,您应该像这样在主 urls.py 文件中添加新端点。

    url(r'^api/v1.0/app1/', include('app1.urls', namespace='v1.0')),
    url(r'^api/v1.1/app1/', include('app1.urls', namespace='v1.1')),
    
    url(r'^api/v1.0/app2/', include('app2.urls', namespace='v1.0')),
    url(r'^api/v1.2/app2/', include('app2.urls', namespace='v1.1')),
    

    你应该在你的restframework设置中添加这个。

    'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning'
    

    您可以通过request.version在您的视图中访问当前版本。

    【讨论】:

      猜你喜欢
      • 2013-05-06
      • 2012-05-31
      • 2021-06-22
      • 2018-09-30
      • 1970-01-01
      • 2017-03-18
      • 2013-01-27
      • 2014-08-29
      • 2012-12-25
      相关资源
      最近更新 更多