drf_spectacular的extend_schema方法指定headers中添加Authorization,代码示例
时间: 2024-02-18 08:01:42 浏览: 228
可以通过在 `extend_schema` 装饰器中传递 `request_body` 参数来指定头部中的 `Authorization` 字段。示例如下:
```python
from drf_spectacular.utils import extend_schema
@extend_schema(
request_body=YourSerializer,
headers={
'Authorization': 'Bearer {token}',
}
)
@api_view(['POST'])
def your_view(request):
...
```
其中,`{token}` 部分可以通过在视图函数中获取请求头部中的 `Authorization` 字段并进行解析得到。
需要注意的是,`extend_schema` 装饰器只对 API 文档的生成起到作用,并不会实际修改请求头部。如果需要在请求中添加 `Authorization` 头部,可以在视图函数中通过 `request.META` 字典来进行设置。例如:
```python
@api_view(['POST'])
def your_view(request):
token = request.META.get('HTTP_AUTHORIZATION', '').replace('Bearer ', '')
headers = {'Authorization': f'Bearer {token}'}
# 发送请求
response = requests.post(url, headers=headers, ...)
...
```
阅读全文