近来在编写接口的过程中,发现非正常的drf接口,即使框架配置了swagger,也不展示;将发现的问题及解决方案记录,以免再次踩坑;
问题表现:
def export_excel(request):
pass
解决方案:增加@api_view()装饰器
方式1:直接通过注释进行描述
from rest_framework.decorators import api_view
@api_view(["POST"])
def export_excel(request):
"""
post:
导出查询数据;
请求params:?file_url= ,不传时,导出到桌面
请求体:{"data": 数据库执行接口返回的data或errors中的内容}
"""
pass
表现:

方式2:使用@swagger_auto_schema进行设置
from rest_framework.decorators import api_view
from drf_yasg import openapi
re_params = openapi.Parameter('file_url', openapi.IN_QUERY, description="请求参数:导出路径,非必填,默认桌面", type=openapi.TYPE_STRING)
# 导出查询数据
@swagger_auto_schema(
method='post',
operation_summary='导出查询数据',
manual_parameters=[re_params],
request_body=openapi.Schema(
type=openapi.TYPE_OBJECT,
properties={
"data": openapi.Schema(title="此请求体用查询的响应data,格式为{'data': data}", type=openapi.TYPE_STRING),
}
),
responses={200: "ok"}
)
@api_view(["POST"])
def export_excel(request):
pass