python - 将多个 swagger 文档(来自不同应用程序)合并到一个 swagger 仪表板 [drf_yasg]
问题描述
如果我有 5 个应用程序(django)和各自的 swagger 文档,是否可以将所有 swagger 文档合并为一个 swagger 文档。我正在使用 django 休息框架。
解决方案
我假设您的意思是在一个 Django 项目中包含 5 个 Django 应用程序。在这种情况下,是的,您可以,而且非常简单。
以下是我通常如何将应用程序组合成一个 urlpattern::
项目/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),
]
对每个应用程序中的每个“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...
]
您只需按照https://drf-yasg.readthedocs.io/en/stable/readme.html#quickstart将标准的drf_yasg内容添加到api_urlpatterns
“project/urls.py”中。
希望这可以帮助。
推荐阅读
- python-3.x - 在“from x import x”函数中使用变量
- java - 如何计算 Math.pow(10, n),其中 n>=10000
- python - Django Rest Framework:允许创建序列化器字段,但不能编辑
- google-chrome - 是否可以使用谷歌浏览器作为代理服务器?
- google-cloud-dataflow - 如何使用 Apache Beam 从 Solace 获取消息并将消息发布到 Solace?
- go - 给定另一个动态修改 Golang struct{} 值的属性
- go - 在 select 语句中使用 Reader 接口时的约定
- c++ - getline() 的原型/库是什么?
- python - 将按钮连接到基于 Python tkinter 构建的计算器中的操作
- python - BASH 到 python 代码翻译:命令调用和历史记录