У меня есть проект, охватывающий несколько приложений:
./project/app1
./project/app2
./project/...
Каждое приложение имеет маршрутизатор для Django REST Framework для включения частей API, предоставляемых этим приложением:
from django.conf.urls import url, include
from rest_framework.routers import DefaultRouter
from .views import ThingViewSet
router = DefaultRouter()
router.register(r'things', ThingViewSet, base_name='thing')
urlpatterns = [
url(r'^', include(router.urls)),
]
Поскольку приложения являются отдельными, мой URL-адрес верхнего уровня (./project/urls.py
) включает в себя каждый из файлов URL-адресов из отдельных приложений:
url(r'^api/app1/', include('app1.urls', namespace='a1')),
url(r'^api/app2/', include('app2.urls', namespace='a2')),
Это означает, что Django REST Framework показывает отдельный корень API для каждого приложения. Однако я хотел бы создать единую структуру API, поэтому, если я перейду к http://example.com/api/
, я увижу полный список всех URL-адресов, доступных на этом уровне иерархии.
Я предполагаю, что есть способ включить все отдельные маршрутизаторы, определенные в отдельных файлах urls.py
для каждого приложения, в один маршрутизатор, но я не могу найти документацию о том, как это сделать. Мне что-то не хватает?