用途
Component Patterns 是一套面向 Prismatic 自定义组件开发的参考文档与技能集合,用于指导组件的架构设计、代码生成与发布。文档围绕开发流程分阶段组织,帮助开发者在不同阶段快速定位所需资料。
主要能力与内容组织
文档首先列出若干 Prism 组件相关操作的替代方式,例如组件列表查询改用 run.ts find-components、组件初始化改用 run.ts scaffold-component、组件发布改用 run.ts publish-component,清单文件在脚手架阶段自动生成,项目脚手架通过 run.ts scaffold-project --components 处理。
在架构模式方面,文档区分两类组件:
- 连接器组件:封装外部 API(如 Salesforce、Canny、HubSpot 等),支持 OAuth2、API Key、Bearer Token、Basic Auth 等认证方式,定义连接、动作、触发器与数据源,通过 Prism CLI 安装。
- 工具类组件:提供辅助动作(如数据转换、格式化等),无需外部连接,仅定义带类型的输入动作。
配置约定强调组件自行定义输入,而非使用 configVar() 包装:动作使用 input() 定义类型化输入(label、type、required、comments、default),认证字段使用 connection() 定义(key、label、inputs),输入类型常量来自 util.types。
分阶段流程
文档按阶段给出指引:
- 既有组件检查:在搭建任何连接器组件前,先检查 Prismatic 官方组件仓库中是否已存在目标服务的子目录。若存在,告知用户官方组件并提供链接,询问是否仍要构建自定义变体;若继续,可参考生产组件的认证模式、动作结构与错误处理。此检查仅适用于连接器组件。
- API 研究:api_docs_url 触发后,外部 API 研究代理会抓取并分析文档,生成结构化 JSON 规格,研究结果影响 auth_type、confirm_resources、webhook_support、base_url 等。
- 脚手架:涉及组件目录结构参考与 Spectral SDK 快速入门。
- 代码生成(主要阶段):包括答案到代码的对照手册(优先加载)、代码生成指南、认证模式、模板目录,以及按需求条件加载的触发器、批量触发器、OAuth2 连接、数据源、客户端模式等参考。
- 构建与发布:包含构建/发布失败的排查方案。
关键代码规范
文档列出了一组组件关键模式:
- 基于函数的客户端:createClient(connection, debug) 返回 spectral 的 HttpClient,而非基于类的实现。
- 错误 hook:每个组件必须包含 hooks: { error: ... },对 ConnectionError 原样重新抛出,其余错误用 new Error() 包装。
- 必需的 rawRequest 动作:位于 actions/misc/rawRequest.ts。
- 目录结构:actions/<resource>/、inputs/、examplePayloads/、dataSources/、triggers/。
- examplePayload:每个动作必须有一个,从 src/examplePayloads/ 导入,并依据 API 校验。
- clean 函数:每个非连接输入需要 clean: util.types.toString(或 toBool、toNumber 等)。
- 输入要求:每个字符串输入需提供 comments、placeholder、example。
- 数据源元素:使用 { label, key } 格式,而非 { label, value },类型为 spectral 的 Element。
- 调试接线:动作中 context.debug.enabled → createClient(connection, debug),生命周期钩子中为 false。
- ConnectionError:在 client.ts 中针对连接类型不匹配抛出,而非在动作中。
- Webhook URL:生命周期钩子中使用 context.webhookUrls[context.flow.name]。
- 连接键:使用简单名称(如 "apiKey"、"oauth2"),而非 "component-api-key"。
- 返回值:动作始终返回 { data: <result> };数据源返回 { result: Element[] }。
适用场景
适用于为 Prismatic 平台开发自定义连接器组件或工具类组件的开发者,尤其适合需要按阶段查阅架构模式、认证实现、触发器实现、数据源实现与代码生成规范的场景。
限制
本文档为参考性资料集合,页面未提供具体的收费、价格或平台支持范围信息;各项功能与流程以实际 Prismatic 平台与 Spectral SDK 的文档为准。