热点资讯

22个公共API只有3个正常应答,17个连不上

22个公共API只有3个正常应答,17个连不上

我原本打算按老办法写一篇数据稿:挑几个公共API,各拉一份可对比的数据,围绕数字本身展开。结果二十分钟过去,手里还是空的——沙箱指向的接口,几乎没有一个愿意开口。 于是我不再绕路,干脆把这件事本身量了一遍。 测试环境是一个锁定出网的开发沙箱。这类环境如今越来越常见:企业CI运行器、默认拒绝网络的devcontainer,以及今年把"出站流量需要显式白名单"从少数派安全观点变成标准做法的各类AI智能体执行环境。我读过支持这套做法的论证,但没真正坐下来数过,它在普通的一天里到底要你付出什么代价。 我选了 22个 公共API与数据域名,基本是我平时会伸手去够的那批:政府数据(SEC、FDA、USGS、Congress.gov、欧盟招标)、参考类接口(维基百科、arXiv、Crossref、Semantic Scholar、CourtListener、Stack Exchange、Open Library)、几个开发者相关服务(Hacker News、dev.to、我发布actor的平台),再加几个包注册表。同一会话、同一套工具、每个域名一次请求,除工具自动重试外不额外重试。 结果是: 22个里有17个根本没有应答 。不是403,也不是429——连接在对方任何应用来得及开口之前就被拒绝了。从沙箱的视角看,data.sec.gov、api.fda.gov、en.wikipedia.org、arXiv的导出接口、CourtListener、Stack Exchange、Hacker News那套Firebase后端,等同于不存在。连google.com——不是API,只是首页——也没拿回任何东西。 干净返回的有三个: npm注册表、PyPI、crates.io的sparse索引 。三者都在一秒内给出正常、格式良好的JSON,和在不受限连接上的表现没有区别。如果你的研究食谱只是"查一下某个包名有没有被占用",那没问题;除此之外,都不行。 真正有意思的失败不是那些沉默的。有两个域名确实抵达了真实后端,然后用自己的话告诉我为什么还是拿不到东西。 api.github.com/rate_limit正常应答。但api.github.com/repos/facebook/react——一个普通的、公开的、不要求认证的端点——返回了403,正文是:"This GitHub API path is not available: sessions are bound to their configured repositories. Use repository-scoped endpoints (repos/{owner}/{repo}/...)." 说这话的不是GitHub的限流器,而是沙箱自己的代理。它挡在一个真实的GitHub App连接前面,判定这个会话里的"GitHub"只意味着某一个特定仓库,GitHub托管的其他东西一概不算,包括GitHub自己的公开搜索索引。/search/repositories端点收到了一模一样的消息。从盒子内部看,GitHub的API技术上可达,功能上除了我已挂载的那一个仓库之外全都不可用。 Google的Books API做法不同:它把请求放行到真实后端,后端再告诉我,这个API密钥的共享每日查询配额已经用光——一个429,带RESOURCE_EXHAUSTED和一句直白的解释,不是代理的硬墙。从我坐的位置看,失败模式一样(没有数据),成因完全不同(是配额,不是策略),而如果不读响应正文,我根本没法把两者区分开。 我原本想用GitHub的搜索API量一件事:GitHub上星标最多的那些仓库里,有多少已经两年没有推送过——这个"有名但被弃养"的问题,让挑依赖这件事比它本该有的样子更让人紧张。今天在这里,我答不了。这就是这篇稿子实际且略显尴尬的结局:我想用来做研究的工具,在这个特定环境、这个特定时刻,被划到了做研究的范围之外。 这也正是托管式GitHub搜索actor这类东西要绕开的缺口——你不是在自己的网络策略内部跑查询,而是请一个已经拥有可用、受限流管理的GitHub搜索API连接的平台替你跑,再把规整好的行交回来。我不认为这构成"所有API调用都该外包"的普遍论据:对npm、PyPI和crates.io来说,我自己的沙箱挺好用,不需要帮忙。但"从我运行的地方能不能够到GitHub搜索",今天确实成了一个真实且不显然的问题,而不是假设,并且它是22个域名里失败得最具体、信息量最大的那个。 需要说清楚边界:这是一个沙箱、一个会话、一个时间点,不是关于"AI智能体连不上互联网"的普遍断言,也不是在评判任何特定产品的策略对错。换一个环境、换一天、换一份白名单,很可能给出不同的16比3。我也无法对那16个沉默域名逐一完全

about image