天天看點

将非drf接口配置到swagger

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

表現:

将非drf接口配置到swagger

 方式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      
将非drf接口配置到swagger