Fundamental_Analysis/services/data-persistence-service/assets/README.md
Lv, Qi 21155bc4f8 feat(realtime): 接入前端实时报价并完善后端缓存
前端: 新增 RealTimeQuoteResponse 类型;新增 useRealtimeQuote Hook 并在报告页图表旁展示价格与时间戳(严格 TTL,无兜底)

FastAPI: 新增 GET /financials/{market}/{symbol}/realtime?max_age_seconds=.. 只读端点;通过 DataPersistenceClient 读取 Rust 缓存

Rust: 新增 realtime_quotes hypertable 迁移;新增 POST /api/v1/market-data/quotes 与 GET /api/v1/market-data/quotes/{symbol}?market=..;新增 DTO/Model/DB 函数;修正 #[api] 宏与路径参数;生成 SQLx 离线缓存 (.sqlx) 以支持离线构建

Python: DataPersistenceClient 新增 upsert/get 实时报价,并调整 GET 路径与参数

说明: TradingView 图表是第三方 websocket,不受我们缓存控制;页面数值展示走自有缓存通路,统一且可控。
2025-11-09 05:12:14 +08:00

2.6 KiB
Raw Blame History

WASM CLI - API调用功能已实现

🎉 问题已解决

之前WASM CLI只显示"Successfully matched command"而不执行实际API调用的问题已经修复

🔧 修复内容

  1. 实现了真正的HTTP API调用: 使用JavaScript的fetch API替代了原来的命令匹配功能
  2. 添加了WASM绑定: 通过web-sys和wasm-bindgen-futures实现异步HTTP请求
  3. 修复了依赖冲突: 通过特性门控解决了reqwest在WASM环境下的兼容性问题
  4. 新增异步API: run_command_async() 函数现在可以真正执行API请求并返回结果

📋 主要更改

1. 新的初始化函数

// 旧版本
init_cli(spec_json)

// 新版本 - 需要同时传递OpenAPI规范和base URL
init_cli(spec_json, base_url)

2. 新的异步命令执行函数

// 新增 - 真正执行API调用
const result = await run_command_async("v1.hello.get");

// 旧版本 - 已废弃,只返回错误信息
const result = run_command("v1.hello.get");

🚀 使用方法

1. 初始化CLI

import init, { init_cli, run_command_async } from './pkg/forge_cli_wasm.js';

// 初始化WASM模块
await init();

// 获取OpenAPI规范
const response = await fetch('http://localhost:3000/api-docs/openapi.json');
const spec = await response.text();

// 初始化CLI
init_cli(spec, 'http://localhost:3000');

2. 执行API命令

// 执行GET请求
const result1 = await run_command_async("v1.hello.get");

// 执行带参数的请求
const result2 = await run_command_async("v1.add.get --a 1 --b 2");

// 执行POST请求如果API支持
const result3 = await run_command_async('v1.create.post --body \'{"name": "test"}\'');

🧪 测试

打开 test.html 文件在浏览器中测试:

  1. 确保你的服务已运行在 http://localhost:3000
  2. 点击 "Initialize CLI" 按钮
  3. 输入命令如 "v1.hello.get" 或 "v1.add.get --a 1 --b 2"
  4. 点击 "Run Command" 按钮
  5. 查看实际的API响应结果

⚠️ 重要注意事项

  1. 旧的run_command函数已废弃: 请使用新的run_command_async函数
  2. 需要CORS支持: 确保你的API服务器支持跨域请求
  3. 异步操作: 所有API调用现在都是异步的需要使用await
  4. 错误处理: API请求失败时会返回错误信息而不是抛出异常

🔍 调试

  • 打开浏览器开发者工具查看控制台日志
  • 网络请求会显示在Network标签页中
  • 任何错误都会在输出区域显示

现在你的WASM CLI可以真正与API进行交互不再只是"匹配命令"了!🎉