SuperAPI AI 工具集

customize-sdk-hooks

通用与其它

查看项目

更新于 10-16 01:09

技能介绍

用途:该技能用于在 Speakeasy 生成的 SDK 中加入自定义代码逻辑,覆盖 SDK 生命周期钩子,而非 OpenAPI 规范配置或运行时客户端覆盖。主要能力:支持 SDKInitHook(客户端初始化)、BeforeCreateRequestHook(创建请求对象前)、BeforeRequestHook(发送请求前)、AfterSuccessHook(成功响应后)、AfterErrorHook(错误响应后)五类钩子,可用于添加自定义请求头、遥测日志与可观测性、HMAC 签名等自定义认证、响应或错误转换、请求响应中间件。使用方式:在 src/hooks/ 下创建钩子实现文件,实现 types.ts 中对应接口,并在 registration.ts 的 initHooks 中注册。registration.ts 只生成一次且再生时保留,你新增的钩子文件同样保留,types.ts 会被重新生成,不可修改。添加后用 speakeasy generate sdk -s openapi.yaml -o . -l typescript 重新生成即可。限制与注意事项:不要编辑 types.ts;读取响应体前必须先 clone,body 流只能消费一次;避免在钩子中执行阻塞式 I/O,遥测类操作可用 fire-and-forget;不要在 AfterSuccessHook 中抛错,除非有意把成功转为失败;钩子可能并发调用,不要无同步地共享可变状态;属于 OpenAPI 规范修改的逻辑应使用 overlay 而非钩子。其他语言(Go、Python、Java、C#、Ruby、PHP)的钩子生命周期与注册模式一致,具体接口以生成的类型文件为准。支持的语言、SDK 版本及其他未在资料中提及的细节暂未提供。