代码之家  ›  专栏  ›  技术社区  ›  Eugene

为api组织django urlpatterns

  •  0
  • Eugene  · 技术社区  · 6 年前

    我想为我的所有api端点使用api版本索引( api/v1/ )中。目前,我正在通过如下方式构建urlpatterns来实现这一点:

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

    有没有办法把它组织得更优雅一些?理想情况下,我希望它看起来像这样:

    apipatterns = [
        'units/', include('units.api.urls'),
        'accounts/', include('accounts.api.urls')
    ]
    
    urlpatterns = [
        path('api/v1/', include(apipatterns)),
    ]
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Eugene Primako    6 年前

    您的“理想”urlpatterns几乎是正确的。以下是修正后的变体:

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

    下面是一个类似的例子 documentation 是的。

        2
  •  1
  •   Youssef BH    6 年前

    你可以用 path include 对于 Including other URLconfs 是的。

    在这种情况下,您可以尝试:

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

    所以路线 api/v1/units/ 将由 'units.api.urls' ,和 api/v1/accounts/ 将由 'accounts.api.urls'

    我希望这会有帮助。