Skip to main content

Crate openlark_docs

Crate openlark_docs 

Source
Expand description

§OpenLark 文档服务模块

飞书开放平台云文档服务模块,提供文档、表格、知识库等 API 访问能力。 Docs helper 的设计与命名规范见 docs/docs-helper-guidelines.md

§文档模块业务域结构 (严格按照 bizTag/project/version/resource 组织)

§CCM - 云文档协同 (174 APIs)

  • docx: 新版文档块与群公告(19 APIs)
  • drive: 云空间文件管理(59 APIs)
  • sheets: 电子表格(27 APIs)
  • wiki: 知识库(16 APIs)
  • doc: 文档基础服务
  • docs: 云文档管理

§BASE - 基础服务 (49 APIs)

  • base: 基础应用服务
  • bitable: 多维表格(46 APIs)

§BAIKE - 企业知识库 (27 APIs)

  • baike: 知识库空间和节点
  • lingo: 知识库分类和实体

§MINUTES - 会议纪要 (4 APIs)

  • minutes: 会议转录和纪要管理

§快速开始

use openlark_core::config::Config;
use openlark_docs::DocsClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = Config::builder()
        .app_id("app_id")
        .app_secret("app_secret")
        .build();
    let client = DocsClient::new(config);

    // 获取配置后构建 Request
    let config = client.ccm.config().clone();
    // 使用 openlark_docs::ccm::drive::v1::file::UploadAllRequest

    // 高频读取场景也可以直接使用 helper
    let _records = client.search_bitable_records_all("app_token", "table_id").await?;
    let _sheet = client.find_sheet_by_title("spreadsheet_token", "2026").await?;
    let _range = client
        .resolve_sheet_range_by_title("spreadsheet_token", "2026", "A1:C5")
        .await?;
    let _ranges = client
        .read_sheet_ranges("spreadsheet_token", vec![_range.clone()])
        .await?;
    let _bytes = client.download_drive_file("file_token").await?;
    let _records = client
        .query_bitable_records(
            openlark_docs::BitableRecordQuery::new("app_token", "table_id")
                .where_equals("状态", "进行中"),
        )
        .await?;
    let _wiki_node = client
        .find_wiki_node_by_path("space_id", "产品文档/发布计划")
        .await?;
    let mut pager = client.folder_children_pager("folder_token").page_size(50);
    let _first_page = pager.fetch_next_page().await?;

    Ok(())
}

§特性

  • 202 APIs 全覆盖 - 飞书云文档服务完整实现(不含旧版本)
  • 类型安全 - 强类型请求/响应结构
  • 异步支持 - 基于 tokio 的异步 API
  • 版本化 API - 支持 v1/v2/v3/v4 多版本 API
  • 构建器模式 - 流畅的 API 调用体验
  • 标准架构 - 严格按照 bizTag/project/version/resource/name.rs 模式组织

Re-exports§

pub use common::chain::DocsClient;
pub use common::chain::TypedPage;

Modules§

common
通用工具、链式 helper 与端点定义。
models
通用文档数据模型。
prelude
常用类型预导出模块。

Macros§

api_url
标准化API端点URL生成辅助宏
build_api_path
路径构建宏 用于统一构建API路径
impl_api_builder
实现API请求构建器的通用宏
impl_base_api_fields
实现基础API请求字段的宏 包含常用的字段如 app_token, table_id 等
impl_executable_builder
核心宏:为Builder类型自动实现ExecutableBuilder trait
impl_executable_builder_owned
为使用值类型参数的Builder实现ExecutableBuilder trait
impl_fluent_builder
简化的流式构建器宏
impl_required_builder
强制构建器宏
impl_response_data
响应数据结构体宏 统一响应结构的基本字段
validate_required
参数验证宏 用于统一验证必填参数