近來在編寫接口的過程中,發現非正常的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