26 lines
717 B
Python
26 lines
717 B
Python
from collections.abc import Mapping
|
|
|
|
from fastapi import Request
|
|
|
|
|
|
class ApiResponseHeaderUtil:
|
|
"""
|
|
接口响应头通用工具类
|
|
"""
|
|
|
|
@classmethod
|
|
def merge_headers(cls, request: Request, headers: Mapping[str, str] | None) -> None:
|
|
"""
|
|
将响应头暂存到请求上下文中,供出站中间件统一追加
|
|
|
|
:param request: 当前请求对象
|
|
:param headers: 需要追加的响应头
|
|
:return: None
|
|
"""
|
|
if not headers:
|
|
return
|
|
|
|
api_response_headers = dict(getattr(request.state, 'api_response_headers', {}))
|
|
api_response_headers.update(headers)
|
|
request.state.api_response_headers = api_response_headers
|