open_lark/service/cloud_docs/sheets/v2/mod.rs
1use crate::core::config::Config;
2
3/// 数据操作功能
4pub mod data_operation;
5/// 行列操作功能
6pub mod sheet_row_col;
7/// 工作表功能
8pub mod spreadsheet_sheet;
9
10/// Sheets API v2版本服务集合
11///
12/// 提供电子表格的基础功能,包括数据读写、工作表管理等核心操作。
13/// v2版本是稳定的基础API版本,适用于大多数常见的电子表格操作需求。
14///
15/// # 主要功能模块
16///
17/// - **spreadsheet**: 电子表格的基础管理功能
18/// - **spreadsheet_sheet**: 工作表的创建、删除和基础操作
19/// - **data_operation**: 数据的读写和基本操作(通过子模块实现)
20/// - **sheet_row_col**: 行列的基础结构操作(通过子模块实现)
21///
22/// # API版本对比
23///
24/// v2版本相比v3版本功能较为基础,但具有以下优势:
25/// - 🔧 API稳定,向后兼容性好
26/// - ⚡ 响应速度快,资源占用少
27/// - 🎯 功能专注,适合简单场景
28/// - 📖 文档完善,示例丰富
29///
30/// # 使用示例
31///
32/// ```rust
33/// use open_lark::prelude::*;
34///
35/// let client = LarkClient::builder("app_id", "app_secret")
36/// .with_app_type(AppType::SelfBuild)
37/// .build();
38///
39/// // 使用v2版本API
40/// let sheets_v2 = &client.sheets.v2;
41///
42/// // 基础工作表操作
43/// // let sheet_ops = &sheets_v2.spreadsheet_sheet;
44/// ```
45///
46/// # 适用场景
47///
48/// - 简单的数据读写操作
49/// - 基础的工作表管理
50/// - 对API稳定性要求高的场景
51/// - 轻量级集成需求
52pub struct V2 {
53 /// 电子表格服务 - 提供表格级别的基础操作
54 pub spreadsheet: SpreadsheetService,
55 /// 工作表服务 - 管理工作表的基础功能
56 pub spreadsheet_sheet: SpreadsheetSheetService,
57}
58
59impl V2 {
60 /// 创建新的V2版本服务实例
61 ///
62 /// # 参数
63 /// - `config`: 客户端配置,包含认证信息和API设置
64 ///
65 /// # 返回值
66 /// 配置完成的V2服务实例,包含基础的服务模块
67 pub fn new(config: Config) -> Self {
68 Self {
69 spreadsheet: SpreadsheetService::new(config.clone()),
70 spreadsheet_sheet: SpreadsheetSheetService::new(config),
71 }
72 }
73}
74
75/// 电子表格服务(V2版本)
76///
77/// 提供电子表格的基础管理功能,包括表格的创建、获取和基本属性设置。
78/// V2版本专注于核心功能,提供稳定可靠的API接口。
79///
80/// # 主要功能
81///
82/// - 📊 创建新的电子表格
83/// - 📋 获取表格基本信息
84/// - ✏️ 更新表格基础属性
85/// - 🔍 查询表格状态
86///
87/// # 功能特点
88///
89/// - ✅ API稳定,兼容性强
90/// - 🚀 响应快速,性能可靠
91/// - 🎯 功能明确,易于使用
92/// - 📚 文档完善,示例丰富
93///
94/// # 使用场景
95///
96/// - 基础表格管理系统
97/// - 简单数据导入导出
98/// - 轻量级报表生成
99/// - 快速原型开发
100///
101/// # 与V3版本对比
102///
103/// V2版本更加简洁,适合基础需求;V3版本功能更强大,适合复杂场景。
104/// 建议根据实际需求选择合适的版本。
105pub struct SpreadsheetService {
106 config: Config,
107}
108
109impl SpreadsheetService {
110 /// 创建新的电子表格服务实例
111 ///
112 /// # 参数
113 /// - `config`: 客户端配置
114 pub fn new(config: Config) -> Self {
115 Self { config }
116 }
117}
118
119/// 工作表服务(V2版本)
120///
121/// 管理电子表格内工作表的基础功能,支持工作表的创建、删除、
122/// 重命名等常用操作。提供稳定可靠的工作表管理接口。
123///
124/// # 主要功能
125///
126/// - 📄 创建新工作表
127/// - 📝 重命名工作表
128/// - 🗑️ 删除工作表
129/// - 📋 获取工作表信息
130/// - 🎨 设置基础属性
131///
132/// # 功能特色
133///
134/// - 🔧 操作简单直观
135/// - ⚡ 执行效率高
136/// - 🛡️ 错误处理完善
137/// - 📖 使用方式清晰
138///
139/// # 使用场景
140///
141/// - 多工作表数据管理
142/// - 基础表格结构搭建
143/// - 简单的工作表模板
144/// - 数据分类整理
145///
146/// # 最佳实践
147///
148/// - 合理规划工作表结构
149/// - 使用有意义的工作表名称
150/// - 避免频繁的工作表操作
151/// - 及时清理不需要的工作表
152pub struct SpreadsheetSheetService {
153 // 向后兼容:保留原始 Config 字段,便于现有测试/示例访问
154 #[allow(dead_code)] // Backward compatibility field for tests/examples
155 config: Config,
156 // 试点:共享配置引用,后续逐步替换内部使用以降低 clone
157 config_arc: Arc<Config>,
158}
159
160impl SpreadsheetSheetService {
161 /// 创建新的工作表服务实例
162 ///
163 /// # 参数
164 /// - `config`: 客户端配置
165 pub fn new(config: Config) -> Self {
166 let config_arc = Arc::new(config.clone());
167 Self { config, config_arc }
168 }
169}
170
171impl SpreadsheetSheetService {
172 /// 获取共享配置的引用计数指针(试点接口)
173 pub fn config_shared(&self) -> Arc<Config> {
174 self.config_arc.clone()
175 }
176}
177use std::sync::Arc;