Arhn - архитектура программирования

объединить несколько документов swagger (из разных приложений) в одну панель управления swagger [drf_yasg]

Если у меня есть 5 приложений (django) с соответствующими документами swagger, можно ли объединить все документы swagger в один документ swagger. Я использую фреймворк django rest.


Ответы:


1

Я предполагаю, что вы имеете в виду 5 приложений Django с одним проектом Django. В этом случае да, вы можете, и это очень просто.

Вот как я обычно объединяю приложения в один шаблон URL:

проект/приложение1/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),
]

Сделайте это для каждого файла urls.py в каждом приложении. Затем в основном urls.py (тот, который указан в ваших настройках) сделайте что-то вроде этого:

проект/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...
]

Вам просто нужно добавить стандартный материал drf_yasg в api_urlpatterns в project/urls.py в соответствии с https://drf-yasg.readthedocs.io/en/stable/readme.html.#quickstart.

Надеюсь это поможет.

07.09.2020
  • сорри, поправочка. это 5 проектов django. все они подключаются к одному шлюзу API и доступны как http://‹ip:port›/app1/, http://‹ip:port›/app2/ ... http://‹ip:port›/ представление app5/.Swagger, которое я определил как http://‹ip:port›/app1/docs/. 08.09.2020
  • Можете ли вы показать мне, как подключить несколько проектов к одному чванству? 12.11.2020
  • @nick - мой ответ для подключения нескольких приложений к одному чванству, спрашивающий (и вы, очевидно) попросили подключить несколько проектов к одному чванству. 13.11.2020
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..