Si j'ai 5 applications (django), avec des docs swagger respectifs, est-il possible de combiner tous les docs swagger en un seul doc swagger. J'utilise le cadre de repos django.
Réponse
Trop de publicités?Je suppose que vous voulez dire 5 applications Django dans un seul projet Django. Dans ce cas, oui, vous pouvez le faire et c'est très simple.
Voici comment je combine habituellement les applications en un seul motif url: :
projet/app1/urls.py :
from django.urls import include, path
from rest_framework.routers import SimpleRouter
from .views import MyModelViewSet, MyClassBasedModelView, my_function_based_model_view
api_router = SimpleRouter()
api_router.register(r"somepattern", MyModelViewSet)
api_urlpatterns = [
path("", include(api_router.urls)),
path("someotherpattern", MyClassBasedModelView.as_view()),
path("yetanotherpattern", my_function_based_view),
]
Faites-le pour chaque fichier "urls.py" dans chaque application. Ensuite, dans le fichier "urls.py" principal (celui qui est référencé dans vos paramètres), faites quelque chose comme ceci :
projet/urls.py :
from app1.urls import api_urlpatterns as app1_api_urlpatterns
from app2.urls import api_urlpatterns as app2_api_urlpatterns
# ...etc...
api_urlpatterns = []
api_urlpatterns += app1_api_urlpatterns
api_urlpatterns += app2_api_urlpatterns
urlpatterns = [
path("api/", include(api_urlpatterns)),
# other (non DRF) views...
]
Il suffit d'ajouter la norme drf_yasg pour api_urlpatterns
dans "project/urls.py" comme dans https://drf-yasg.readthedocs.io/en/stable/readme.html#quickstart .
J'espère que cela vous aidera.