fix: 修正 Core API 参数名 per_page → page_size

问题:
- Studio 使用 per_page 参数
- Core API 实际参数名是 page_size
- 导致 Core API 忽略参数,总是返回 20 条数据

修复:
- 将所有 per_page 改为 page_size
- 确保与 Core API 参数名一致
- 现在可以正确获取 100 条数据

测试:
✅ Core API 测试: ?page_size=50 返回 50 条数据
✅ 编译通过

影响:
- Library 可以显示所有文件(118 个)
- 减少 API 请求次数
This commit is contained in:
2026-10-10 11:48:07 +08:00
parent 04faec64d7
commit 7a295bb9b4

View File

@@ -220,10 +220,10 @@ async fn search_agents(query: String, conversation_id: Option<String>) -> Result
async fn get_files(args: GetFilesArgs) -> Result<Vec<FileInfo>, String> { async fn get_files(args: GetFilesArgs) -> Result<Vec<FileInfo>, String> {
let max_files = args.page_size; let max_files = args.page_size;
let client = get_client(); let client = get_client();
let per_page = 100; // Core API 现在支持更大的 page_size let page_size = 100; // Core API 现在支持更大的 page_size
// 获取第一页并获取总数 // 获取第一页并获取总数
let url = format!("{}/api/v1/files?api_key={}&page=1&per_page={}", CORE_API, API_KEY, per_page); let url = format!("{}/api/v1/files?api_key={}&page=1&page_size={}", CORE_API, API_KEY, page_size);
let response = client.get(&url).send().await.map_err(|e| format!("Request failed: {}", e))?; let response = client.get(&url).send().await.map_err(|e| format!("Request failed: {}", e))?;
let json: serde_json::Value = response.json().await.map_err(|e| format!("Parse failed: {}", e))?; let json: serde_json::Value = response.json().await.map_err(|e| format!("Parse failed: {}", e))?;
@@ -243,17 +243,17 @@ async fn get_files(args: GetFilesArgs) -> Result<Vec<FileInfo>, String> {
} }
// 计算总页数 // 计算总页数
let total_pages = (total + per_page - 1) / per_page; let total_pages = (total + page_size - 1) / page_size;
// 获取剩余页(如果有限制) // 获取剩余页(如果有限制)
let max_pages = (max_files + per_page - 1) / per_page; let max_pages = (max_files + page_size - 1) / page_size;
for page in 2..=max_pages.min(total_pages) { for page in 2..=max_pages.min(total_pages) {
if all_files.len() >= max_files { if all_files.len() >= max_files {
break; break;
} }
let url = format!("{}/api/v1/files?api_key={}&page={}&per_page={}", CORE_API, API_KEY, page, per_page); let url = format!("{}/api/v1/files?api_key={}&page={}&page_size={}", CORE_API, API_KEY, page, page_size);
let response = client.get(&url).send().await.map_err(|e| format!("Request failed: {}", e))?; let response = client.get(&url).send().await.map_err(|e| format!("Request failed: {}", e))?;
let json: serde_json::Value = response.json().await.map_err(|e| format!("Parse failed: {}", e))?; let json: serde_json::Value = response.json().await.map_err(|e| format!("Parse failed: {}", e))?;