drf_yasg定制

在写DRF接口的时候,如果我们使用的ModelViewset,这个时候生成的swagger接口文档中,参数和响应都是没有问题的。但是有些接口,我们需要定制,这时候的接口文档显得不那么友好。

栗子.py

from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema

class StorageViewSet(APIView):
 	#定义warehouseId字字段
 	# required -> 是否必填
 	# in_  -> 应用为 query
 	#description -> 描述
 	#type -> 字符串
    warehouseId = openapi.Parameter('warehouseId', required=True,in_=openapi.IN_QUERY, description='仓库Id',
                                    type=openapi.TYPE_STRING)
   	#装饰器:
   	# manual_parameters ->查询使用的字段
   	#responses -> 响应结果
   	# operation_id  ->随便填写,但是要唯一
   	# operation_description ->接口说明
    @swagger_auto_schema(
        manual_parameters=[warehouseId],
        responses={
            '200': openapi.Response('', GetStorageSerializer)
        },
        security=[],
        operation_id='StorageViewSet-get',
        operation_description='获取库存信息',
    )
    def get(self,request):
        params = request.query_params
        warehouseId = params.get('warehouseId')
        warehouseId = Warehouse.objects.filter(id=warehouseId).first()
        queryset = Storage.objects.filter(warehouseId=warehouseId).values('system', 'classify')\
            .annotate(warehouseNumber=Sum('warehouseNumber'),
                      palautusNumber=Sum('palautusNumber'), )
        serializer = GetStorageSerializer(queryset,many=True)
        return SuccessResponse(data=serializer.data,  msg="操作成功")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值