欢迎访问宙启技术站
智能推送

DRF_Yasg.openapiInfo()与Swagger集成说明

发布时间:2023-12-14 08:38:21

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_APPSMIDDLEWARE中:

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文档,提供更好的开发体验和方便的接口文档查看功能。