gpt4 book ai didi

django - DRF 指定所需的标题

转载 作者:行者123 更新时间:2023-12-04 15:55:49 36 4
gpt4 key购买 nike

有没有办法为特定的 View 类指定所需的自定义 header ?在我正在使用的 API 上,一些信息是使用 header 传递的,如果缺少 header ,我需要返回 BAD_REQUEST 或类似信息。

我可以想到使用 mixins 实现它的方法,但不确定是否已经有合适的方法。

最佳答案

您可以通过重写 dispatch() 方法来实现,

<b>from django.core.exceptions import PermissionDenied</b>
from rest_framework import viewsets


class SampleViewset(viewsets.ModelViewSet):
serializer_class = SampleSerializer
queryset = SampleModel.objects.all()

<b>def dispatch(self, request, *args, **kwargs):
if "HTTP_CUSTOM_HEADER" not in request.META:
raise PermissionDenied('not found')
return super().dispatch(request, *args, **kwargs)</b>

使用 Python 的请求库的自定义 header 的用法示例

In [10]: wrong_header = {"custom-header-wrong":"soem value"}

In [11]: orginal_header = {"custom-header":"soem value"}

In [12]: requests.get(url=url,headers=wrong_header).status_code
Out[12]: 403

In [13]: requests.get(url=url,headers=orginal_header).status_code
Out[13]: 200

关于django - DRF 指定所需的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51743939/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com