如何使用DRF_Yasg.openapiInfo()生成API文档
发布时间:2023-12-14 08:26:15
使用DRF_Yasg生成API文档主要分为以下几个步骤:
1. 安装DRF_Yasg库:
pip install drf-yasg
2. 在Django settings文件中配置DRF_Yasg:
INSTALLED_APPS = [
...
'drf_yasg',
]
SWAGGER_SETTINGS = {
'DEFAULT_INFO': 'your_project.urls.openapi_info', # 设置OpenAPI定义的路径
...
}
3. 创建一个urls.py文件以定义API路由,并创建一个openapi_info.py文件存放OpenAPI定义:
# urls.py
from django.urls import path
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
from . import openapi_info
schema_view = get_schema_view(
openapi_info.openapi_info, # 指定OpenAPI定义
...
)
urlpatterns = [
...
path('api/docs/', schema_view.with_ui('swagger'), name='api_docs'),
]
# openapi_info.py
from drf_yasg import openapi
api_info = openapi.Info(
title="API文档",
default_version="v1",
description="这是一个示例API文档",
...
)
openapi_info = openapi.openapi_info(
info=api_info,
...
)
4. 在API视图中使用@swagger_auto_schema装饰器定义API接口参数和返回结果的描述信息,并使用@decorators.api_view装饰器来指定HTTP方法:
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view(['GET'])
@swagger_auto_schema(
operation_summary="获取用户信息接口",
operation_description="根据用户ID获取用户的详细信息",
manual_parameters=[
openapi.Parameter('id', openapi.IN_QUERY, description="用户ID", type=openapi.TYPE_INTEGER),
],
responses={
200: openapi.Response('成功', UserSerializer),
404: "Not Found",
}
)
def get_user(request):
id = request.query_params.get('id')
user = User.objects.get(id=id)
serializer = UserSerializer(user)
return Response(serializer.data)
5. 运行Django项目,并访问/api/docs/查看生成的API文档:
python manage.py runserver
通过以上步骤,你可以成功生成一个包含使用例子的API文档。在使用@swagger_auto_schema装饰器时,你可以通过参数自定义API接口的描述信息,包括接口的摘要、描述、参数、返回结果等。通过提供OpenAPI定义,DRF_Yasg可以自动生成API文档并提供易于理解和使用的界面。
