HTTP状态码(201和204状态码的使用)

201与204
201为创建成功状态码
204为删除成功状态码

@swagger_auto_schema(
        operation_summary="取消收藏",
        request_body=FavoritesDeleteSerializer,
        responses={
            "204": "OK",
        },
        operation_description="取消收藏",
    )
    @action(methods=["post"], detail=True, url_path="cancel-favorites")
    def cancel_favorites(self, request, *args, **kwargs):
        knowledge_obj = self.get_object()
        create_user_id = request.user.id
        Favorites.objects.filter(
            id=knowledge_obj.id, create_user_id=create_user_id
        ).delete()
        return Response(status=status.HTTP_200_OK)

    @swagger_auto_schema(
        operation_summary="收藏知识",
        request_body=FavoritesDeleteSerializer,
        responses={
            "201": FavoritesDeleteSerializer(many=True),
        },
        operation_description="收藏知识",
    )
    @action(methods=["post"], detail=True, url_path="favorites")
    def create_favorites(self, request, *args, **kwargs):
        knowledge_obj = self.get_object()
        serializer = FavoritesModelSerializer(data={"knowledge_id": knowledge_obj.id})
        serializer.is_valid(raise_exception=True)
        serializer.save()
        return Response(serializer.data, status=status.HTTP_200_OK)

在上述代码中,收藏是创建收藏对象,但是这里的Favorites是一张关系表,所以在此不需要关系是否创建成功,又因为是使用的post方法,在post方法中一般返回200、201状态码,在这里不使用201故使用200状态码
取消收藏是删除对象,删除应该使用204状态码,但是这里使用的是post方法应该返回200、201状态码,又因为201是创建成功的状态码,所以不可以使用,在此使用200状态码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值