27 lines
813 B
Python
27 lines
813 B
Python
|
|
"""FastAPI 验证服务的客户端。"""
|
||
|
|
|
||
|
|
import os
|
||
|
|
|
||
|
|
import httpx
|
||
|
|
from dotenv import load_dotenv
|
||
|
|
|
||
|
|
load_dotenv()
|
||
|
|
|
||
|
|
VALIDATION_URL = os.getenv("VALIDATION_SERVICE_URL", "http://localhost:8001/validate")
|
||
|
|
|
||
|
|
|
||
|
|
def validate_jrxml(jrxml_text: str) -> dict:
|
||
|
|
"""将 JRXML 发送到验证服务并返回 {valid: bool, error: str}。"""
|
||
|
|
try:
|
||
|
|
with httpx.Client(timeout=30.0) as client:
|
||
|
|
resp = client.post(VALIDATION_URL, json={"jrxml": jrxml_text})
|
||
|
|
resp.raise_for_status()
|
||
|
|
return resp.json()
|
||
|
|
except httpx.ConnectError:
|
||
|
|
return {
|
||
|
|
"valid": False,
|
||
|
|
"error": f"无法连接到验证服务 ({VALIDATION_URL})。是否正在运行?",
|
||
|
|
}
|
||
|
|
except Exception as e:
|
||
|
|
return {"valid": False, "error": f"验证请求失败: {str(e)}"}
|