DRF_Yasg.openapiInfo()与Swagger集成说明
DRF_Yasg是一个开源的扩展库,用于将Django REST framework(DRF)的API文档集成到Swagger UI中。Swagger是一种用于描述、生成、消费和可视化RESTful风格的Web服务的API的开源框架。
下面是DRF_Yasg与Swagger集成的使用说明,包括安装库,配置和使用示例。
1. 安装和配置DRF_Yasg
首先,使用以下命令安装DRF_Yasg:
pip install drf-yasg
然后,在Django项目的settings.py文件中配置DRF_Yasg,将其添加到INSTALLED_APPS和MIDDLEWARE中:
INSTALLED_APPS = [
...
'drf_yasg',
]
MIDDLEWARE = [
...
'drf_yasg.middleware.SwaggerMiddleware',
]
这样就完成了DRF_Yasg的安装和配置。
2. 集成Swagger UI
在Django项目的urls.py文件中,添加以下代码以引入DRF_Yasg视图:
from django.contrib import admin
from django.urls import path, include
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_view = get_schema_view(
openapi.Info(
title="Your API",
default_version='v1',
description="Description of your API",
terms_of_service="https://www.example.com/terms/",
contact=openapi.Contact(email="contact@example.com"),
license=openapi.License(name="BSD License"),
),
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('api.urls')),
path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
]
其中,需要将openapi.Info的参数按照实际情况填写。在上面的示例中,Swagger UI将通过访问/swagger/路径来查看API文档。
3. 配置API文档的信息
在Django项目的views.py文件中定义API视图,并使用DRF的装饰器装饰:
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view(['GET'])
def hello(request):
"""
Hello API
"""
return Response("Hello, World!")
在API视图中,可以使用DRF的装饰器为每个API操作添加额外的元数据,例如参数说明、请求示例、响应示例等。
4. 自动生成API文档
运行Django开发服务器,并访问/swagger/路径,可以看到自动生成的Swagger UI界面和API文档。在Swagger UI中,可以查看各个API的详细信息,包括路径、请求方法、参数、请求示例、响应示例等。
这是一个简单的示例,演示了使用DRF_Yasg将DRF的API文档集成到Swagger UI中。通过DRF_Yasg,可以方便地为Django REST framework创建可视化的API文档,提供更好的开发体验和方便的接口文档查看功能。
