スキル一覧に戻る
foxzool

openlark-validation-style

by foxzool

飞书开放平台的非官方 Rust SDK,支持自定义机器人、长连接机器人、云文档、飞书卡片、消息、群组等 API 调用。

48🍴 15📅 2026年1月23日
GitHubで見るManusで実行

SKILL.md


name: openlark-validation-style description: OpenLark Rust SDK 的 feature-crate 参数校验规范(必填校验)。当需要统一/评审 validate() 写法,或用户询问 openlark_core::validate_required(函数)与 openlark_core::validate_required!(宏)的区别、是否需要宏、空白字符串处理等问题时使用。 allowed-tools: Read, Grep

OpenLark Validation Style

🧭 技能路由指南

本技能适用场景:

  • 需要统一/评审 validate() 方法写法
  • 不确定使用 validate_required!(宏)还是 validate_required()(函数)
  • 需要处理空白字符串校验
  • 需要聚合多条校验错误

其他技能:

  • 添加/重构 API → Skill(openlark-api)
  • 审查整体设计规范 → Skill(openlark-design-review)

目标

在各 feature crate 的请求/Builder validate(&self) -> SDKResult<()> 中统一:

  • 必填字段校验写法(减少样板代码)
  • 空白字符串是否视为缺失(避免不同 crate 行为漂移)
  • 失败时返回的错误类型与消息风格

规则

1) 默认:在 validate() 内使用 openlark_core::validate_required!(宏)快速失败

适用场景:必填校验失败就应该立即返回 Err(...)

注意:该宏内部用 .is_empty() 判空,不会自动 trim()

字符串字段一律传入 .trim() 结果,保证空白字符串也视为缺失:

fn validate(&self) -> openlark_core::SDKResult<()> {
    openlark_core::validate_required!(self.app_token.trim(), "app_token 不能为空");
    openlark_core::validate_required!(self.table_id.trim(), "table_id 不能为空");
    Ok(())
}

非字符串容器(如 Vec<T>)可直接传字段(按“长度是否为 0”判空):

fn validate(&self) -> openlark_core::SDKResult<()> {
    openlark_core::validate_required!(self.items, "items 不能为空");
    Ok(())
}

2) 需要自定义控制流(不立刻 return / 聚合多条错误)时,使用 openlark_core::validation::validate_required(函数)

适用场景:

  • 需要做多条校验后统一返回(例如收集多个错误)
  • 需要明确的 trim() 语义(函数内部 trim() 后判空)

注意:函数只返回 bool,你需要自己决定错误消息与返回时机:

fn validate(&self) -> openlark_core::SDKResult<()> {
    if !openlark_core::validation::validate_required(&self.name, "name") {
        return Err(openlark_core::CoreError::validation_msg("name 不能为空"));
    }
    Ok(())
}

3) 禁止在 feature crate 内重复定义 validate_required!(或同语义宏)

统一复用 openlark_core::validate_required!,避免各 crate 的判空规则/错误类型不一致。

速查

  • “校验失败立即返回” → openlark_core::validate_required!(field[.trim()], "...")
  • “空白也算空” → 字符串传 .trim(),或使用函数 openlark_core::validation::validate_required
  • “多条校验汇总再返回” → 函数 validate_required + 自定义聚合逻辑

スコア

総合スコア

70/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

レビュー

💬

レビュー機能は近日公開予定です