| 12345678910111213141516171819202122232425262728293031323334 |
- """DMS请求ID上下文。"""
- from __future__ import annotations
- from uuid import UUID, uuid4
- from flask import g, request
- from dms.common.errors import InvalidArgumentError
- REQUEST_ID_HEADER = "X-Request-Id"
- def initialize_request_id() -> None:
- """接收合法UUID,未提供时生成新的UUID。"""
- incoming = request.headers.get(REQUEST_ID_HEADER)
- if incoming:
- try:
- UUID(incoming)
- except (ValueError, AttributeError) as exc:
- g.dms_request_id = str(uuid4())
- raise InvalidArgumentError("X-Request-Id必须是有效UUID") from exc
- g.dms_request_id = incoming
- return
- g.dms_request_id = str(uuid4())
- def get_request_id() -> str:
- request_id = getattr(g, "dms_request_id", None)
- if request_id is None:
- request_id = str(uuid4())
- g.dms_request_id = request_id
- return request_id
|