openlark-validation-style

OpenLark Validation Style

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "openlark-validation-style" with this command: npx skills add foxzool/open-lark/foxzool-open-lark-openlark-validation-style

OpenLark Validation Style

🧭 技能路由指南

本技能适用场景:

  • 需要统一/评审 validate() 方法写法

  • 不确定使用 validate_required! (宏)还是 validate_required() (函数)

  • 需要处理空白字符串校验

  • 需要聚合多条校验错误

其他技能:

  • 项目级代码规范检查(架构/API/导出/校验一体)→ Skill(openlark-code-standards)

  • 添加/重构 API → Skill(openlark-api)

  • 审查整体设计规范 → Skill(openlark-design-review)

关键词触发映射

  • validate、必填校验、validate_required、空白字符串、校验聚合 → openlark-validation-style

  • 代码规范、规范检查、风格一致性、体检 → openlark-code-standards

  • 架构设计、public API、收敛方案、feature gating、兼容策略 → openlark-design-review

  • 新增 API、重构 API、Builder、Request/Response、mod.rs 导出 → openlark-api

  • 覆盖率、缺失 API、实现数量、CSV 对比 → openlark-api-validation

双向跳转规则

  • 若校验问题已扩展到命名/导出/端点体系,转 openlark-code-standards 。

  • 若校验争议本质是架构范式冲突(例如 Request/Service 边界),转 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(()) }

  1. 需要自定义控制流(不立刻 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(()) }

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

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

速查

  • “校验失败立即返回” → openlark_core::validate_required!(field[.trim()], "...")

  • “空白也算空” → 字符串传 .trim() ,或使用函数 openlark_core::validation::validate_required

  • “多条校验汇总再返回” → 函数 validate_required

  • 自定义聚合逻辑

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

openlark-api

No summary provided by upstream source.

Repository SourceNeeds Review
General

openlark-api-validation

No summary provided by upstream source.

Repository SourceNeeds Review
General

openlark-naming

No summary provided by upstream source.

Repository SourceNeeds Review
General

openlark-design-review

No summary provided by upstream source.

Repository SourceNeeds Review