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

使用drf_yasg.openapi生成具有中文注释的Swagger接口文档

发布时间:2023-12-27 02:38:48

Swagger是一种用于构建、文档化和调试API的工具。它提供了一个交互式的界面,用于展示API终端的详细信息,方便用户了解和使用API。drf_yasg.openapi是一个基于Django Rest Framework的插件,可以生成具有中文注释的Swagger接口文档。

使用drf_yasg.openapi生成Swagger接口文档的基本步骤如下:

1. 安装drf_yasg库

首先需要在项目中安装drf_yasg库。可以使用pip命令来安装,如下所示:

   $ pip install drf_yasg
   

2. 配置settings.py文件

在项目的settings.py文件中进行必要的配置。首先需要将drf_yasg添加到INSTALLED_APPS中:

   INSTALLED_APPS = [
       ...
       'drf_yasg',
       ...
   ]
   

然后需要将drf_yasg的URL配置添加到项目的URL配置文件中,如下所示:

   ...
   from django.urls import include, path
   from drf_yasg.views import get_schema_view
   from drf_yasg import openapi
   
   schema_view = get_schema_view(
       openapi.Info(
           title="API文档",
           default_version='v1',
           description="这是一个API文档",
           terms_of_service="http://www.example.com/terms/",
           contact=openapi.Contact(email="contact@example.com"),
           license=openapi.License(name="MIT License"),
       ),
       public=True,
   )
   
   urlpatterns = [
       path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
       ...
   ]
   

3. 在API视图中添加注释

在定义API视图函数时,可以使用drf_yasg提供的装饰器来添加注释。注释可以包括接口的路径、请求方法、请求参数和返回结果等信息。以下是一个示例:

   from rest_framework.decorators import api_view
   from drf_yasg.utils import swagger_auto_schema
   from drf_yasg import openapi
   
   @api_view(['GET'])
   @swagger_auto_schema(
       operation_summary="获取用户信息",
       operation_description="根据用户ID获取用户信息",
       responses={
           '200': openapi.Response(
               description="成功",
               examples={
                   'application/json': {
                       'id': 1,
                       'name': 'John',
                       'age': 25
                   }
               }
           ),
           '400': "参数错误"
       }
   )
   def get_user(request, id):
       """
       获取用户信息
       ---
       parameters:
           - name: id
             description: 用户ID
             required: true
             type: integer
             format: int32
       """
       # 处理获取用户信息的逻辑
       pass
   

在上述示例中,@swagger_auto_schema装饰器用于添加接口的注释。其中,operation_summary表示接口的简要描述,operation_description表示接口的详细描述,responses表示接口的返回结果。注释中还可以定义请求参数,并对参数进行描述。

4. 生成Swagger接口文档

在完成以上配置后,启动项目,并访问http://localhost:8000/swagger/,就可以看到生成的Swagger接口文档了。在文档中可以看到每个API接口的详细信息和使用示例。如果有新的API接口或者参数发生变化,只需要修改注释即可,无需再次编写API文档。

总结来说,使用drf_yasg.openapi生成具有中文注释的Swagger接口文档的步骤包括:安装drf_yasg库、配置settings.py文件、在API视图中添加注释、生成Swagger接口文档。这样可以方便地为API提供详细的文档和使用示例,帮助用户更好地了解和使用API。