Django 中的 Swagger 集成
Swagger Integration in Django
我需要在 Django 中集成 Swagger。那么,谁能讨论一下在Django中集成Swagger的步骤。我需要完整的描述。
提前致谢。
如果您正在尝试使用 Swagger,那么我确定您正在构建一个 API (REST)。因此,回答关于 Swagger 与 Django 集成的广泛问题,您可以使用 Django Rest Framework + Swagger(我推荐)或仅使用 Swagger。在这种情况下你需要做什么:
Django Rest 框架 + Swagger
pip install django djangorestframework django-rest-swagger
然后在您的 settings.py
中包括:
INSTALLED_APPS = [
...,
'rest_framework',
'rest_framework_swagger',
]
然后在你的 urls.py
:
from rest_framework import routers
from yourapp.accounts.views import UserViewSet
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
urlpatterns = [
url(r'^api/v1/', include(router.urls)),
...
]
在views.py
中:
from rest_framework import viewsets
class UserViewSet(viewsets.ReadOnlyModelViewSet):
"""
This viewset automatically provides `list` and `detail` actions.
"""
queryset = User.objects.all()
serializer_class = UserSerializer
进入主页后/
,您将获得带有所有端点渲染的swagger界面(如上例在路由器中注册)。
Django + Swagger
pip install django django-rest-swagger
然后在你的 settings.py
:
INSTALLED_APPS = [
...
'rest_framework_swagger',
...
]
在urls.py
中:
from django.conf.urls import url
from views import schema_view
urlpatterns = [
url('/', schema_view),
...
]
在你的例子中 views.py
:
from rest_framework.decorators import api_view, renderer_classes
from rest_framework import response, schemas
from rest_framework_swagger.renderers import OpenAPIRenderer, SwaggerUIRenderer
@api_view()
@renderer_classes([OpenAPIRenderer, SwaggerUIRenderer])
def schema_view(request):
generator = schemas.SchemaGenerator(title='Bookings API')
return response.Response(generator.get_schema(request=request))
参考:
我需要在 Django 中集成 Swagger。那么,谁能讨论一下在Django中集成Swagger的步骤。我需要完整的描述。
提前致谢。
如果您正在尝试使用 Swagger,那么我确定您正在构建一个 API (REST)。因此,回答关于 Swagger 与 Django 集成的广泛问题,您可以使用 Django Rest Framework + Swagger(我推荐)或仅使用 Swagger。在这种情况下你需要做什么:
Django Rest 框架 + Swagger
pip install django djangorestframework django-rest-swagger
然后在您的 settings.py
中包括:
INSTALLED_APPS = [
...,
'rest_framework',
'rest_framework_swagger',
]
然后在你的 urls.py
:
from rest_framework import routers
from yourapp.accounts.views import UserViewSet
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
urlpatterns = [
url(r'^api/v1/', include(router.urls)),
...
]
在views.py
中:
from rest_framework import viewsets
class UserViewSet(viewsets.ReadOnlyModelViewSet):
"""
This viewset automatically provides `list` and `detail` actions.
"""
queryset = User.objects.all()
serializer_class = UserSerializer
进入主页后/
,您将获得带有所有端点渲染的swagger界面(如上例在路由器中注册)。
Django + Swagger
pip install django django-rest-swagger
然后在你的 settings.py
:
INSTALLED_APPS = [
...
'rest_framework_swagger',
...
]
在urls.py
中:
from django.conf.urls import url
from views import schema_view
urlpatterns = [
url('/', schema_view),
...
]
在你的例子中 views.py
:
from rest_framework.decorators import api_view, renderer_classes
from rest_framework import response, schemas
from rest_framework_swagger.renderers import OpenAPIRenderer, SwaggerUIRenderer
@api_view()
@renderer_classes([OpenAPIRenderer, SwaggerUIRenderer])
def schema_view(request):
generator = schemas.SchemaGenerator(title='Bookings API')
return response.Response(generator.get_schema(request=request))
参考: