3 votes

combiner plusieurs documents swagger (de différentes applications) dans un tableau de bord swagger [drf_yasg].

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.

0voto

trubliphone Points 449

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X