如何在Django应用的Swagger UI中添加自定义VENDOR请求头字段?
在Django Swagger UI中添加VENDOR请求头输入字段
实现方案(基于drf-yasg库)
如果你的项目使用drf-yasg生成Swagger文档,可通过自定义安全方案实现需求:
- 定义自定义安全方案
在项目中创建配置文件(如swagger_config.py),添加以下代码:
from drf_yasg.openapi import SecurityScheme # 配置VENDOR请求头的安全规则 VENDOR_SECURITY_SCHEME = SecurityScheme( type="apiKey", name="VENDOR", in_="header", description="所有API请求必须携带的VENDOR标识头" )
- 全局配置Swagger
在settings.py的SWAGGER_SETTINGS中注册该安全方案,并设置全局强制要求:
SWAGGER_SETTINGS = { # 保留原有其他配置... 'SECURITY_DEFINITIONS': { 'VENDOR': VENDOR_SECURITY_SCHEME, }, # 全局所有接口强制携带VENDOR头 'SECURITY_REQUIREMENTS': [{'VENDOR': []}] }
- 局部应用(可选)
若无需全局强制,仅对部分视图生效,可在视图/视图集上添加装饰器:
from drf_yasg.utils import swagger_auto_schema @swagger_auto_schema(security=[{'VENDOR': []}]) class YourApiView(APIView): # 视图逻辑代码
效果说明
配置完成后,Swagger UI顶部会出现VENDOR输入框,填写值后,所有请求会自动将该值附加到VENDOR请求头中,与你提供的示例图效果一致。
内容的提问来源于stack exchange,提问作者Sudip Bhandari
相关产品推荐
相关产品推荐

