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

Python中使用drf_yasg.openapi生成清晰易懂的中文API文档

发布时间:2023-12-27 02:41:02

在Python中,我们可以使用drf_yasg库来生成清晰易懂的中文API文档。drf_yasg是一个Django Rest Framework的扩展,它提供了自动生成文档的功能,并支持使用OpenAPI规范。

首先,我们需要安装drf_yasg库。可以通过pip命令进行安装:

pip install drf_yasg

接下来,在Django的settings.py文件中添加以下配置:

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

SWAGGER_SETTINGS = {
    'DEFAULT_AUTO_SCHEMA_CLASS': 'drf_yasg.openapi.AutoSchema',
    'DEFAULT_GENERATOR_CLASS': 'drf_yasg.generators.OpenAPISchemaGenerator',
    'DEFAULT_API_URL': 'http://localhost:8000',
    'DEFAULT_API_TITLE': 'API文档',
    'DEFAULT_API_DESCRIPTION': '这是一个使用drf_yasg生成的API文档',
    'DEFAULT_API_VERSION': 'v1',
    'DEFAULT_CONTACT_EMAIL': 'admin@example.com',
    'SECURITY_DEFINITIONS': {
        'Bearer': {
            'type': 'apiKey',
            'name': 'Authorization',
            'in': 'header',
        }
    },
    'LOGIN_URL': 'rest_framework:login',
    'LOGOUT_URL': 'rest_framework:logout',
}

在这里,我们设置了一些默认的配置,包括API标题、描述、版本号、联系邮箱以及安全定义等。你可以根据自己的需求进行配置。

接下来,在你的Django视图中,使用@swagger_auto_schema装饰器来添加注解,以指定API的参数、响应等信息。例如,我们创建一个简单的API视图:

from rest_framework.decorators import api_view
from drf_yasg.utils import swagger_auto_schema
from rest_framework.response import Response

@swagger_auto_schema(
    method='get',
    operation_summary='获取用户信息',
    operation_description='用于获取用户的详细信息。',
    responses={
        200: '用户信息',
        404: '用户不存在',
        400: '请求错误',
    }
)
@api_view(['GET'])
def user_detail(request, user_id):
    user = User.objects.get(id=user_id)
    if user:
        return Response({'user_id': user.id, 'username': user.username})
    else:
        return Response({'error': '用户不存在'}, status=404)

在这个例子中,我们使用@swagger_auto_schema装饰器来为API视图添加注解。我们指定了请求方法、操作概要和操作描述,以及可能的响应代码和描述。

最后,在你的Django的urls.py文件中,使用get_schema_view函数来创建一个API文档的视图。例如:

from django.urls import 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='这是一个使用drf_yasg生成的API文档',
        contact=openapi.Contact(email='admin@example.com'),
        license=openapi.License(name='Apache 2.0'),
    ),
    public=True,
)

urlpatterns = [
    path('api/doc/', schema_view.with_ui('swagger', cache_timeout=0), name='api-doc'),
]

在这个例子中,我们创建了一个schema_view,并将其设置为swagger界面。然后,我们将该视图添加到Django的URL配置中。

现在,你可以启动Django服务器,并访问http://localhost:8000/api/doc/来查看生成的API文档。你会看到一个清晰易懂的中文API文档,包含了你在注解中指定的操作信息和响应描述。

总结来说,使用drf_yasg库可以方便地生成清晰易懂的中文API文档。通过设置默认配置和使用@swagger_auto_schema装饰器来添加注解,我们可以指定API的参数、响应等信息。最后,通过创建一个API文档的视图,我们可以在浏览器中查看生成的文档,并进行交互操作。