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;