Skip to content

pkg/sdk(内部视角)

🧩 `pkg/sdk/` — Go SDK 实现细节。

pkg/sdkrunner/scan 的能力包装成稳定、链式、易用的 Go API。本文从源码角度剖析其内部结构。

📁 源码目录:pkg/sdk/

文件职责

文件源码职责
client.goclient.goClient 主体、Screenshot/Batch
options.gooptions.goClientOptions、Builder
builders.gobuilders.go链式 Builder 函数
result.goresult.go结果包装与字节提取
shared.goshared.go共享池便捷函数
targets.gotargets.go目标展开
autoconnect.goautoconnect.go自动发现 Chrome

Client 核心

符号源码说明
ClientL54SDK 主入口
driverPool(内部接口)L60池抽象(便于测试 mock)
NewClient(opts)L78构造
NewRemoteClient(wsURL, max)L113远程 Chrome 构造
BatchResultL1656批量结果
ScreenshotRequestL1683请求体

依赖反转

Client 不直接依赖 *runner.DriverPool,而是依赖内部接口 driverPoolL60),便于单测注入 mock:

黑名单前置

SDK 在截图前先校验目标:

函数源码说明
rejectBlacklistedTargetL1726拦截并返回错误结果
blacklistedResultL1737构造黑名单 Result
appendCookieSourcesL1796标注 Cookie 来源
extractDomainL1861提取域名

调用链

下一步

基于 MIT 许可发布