aiohttp 支持
aiohttp 支持
每个 Fern 生成的 Python SDK 都内置了对 aiohttp 作为异步 HTTP 传输的可选支持。当安装了 aiohttp 可选额外依赖时,生成的异步客户端会自动使用它,而不是默认的 httpx.AsyncClient。
这对于需要进行大量并发异步 API 调用的 SDK 很重要:httpx.AsyncClient 在高并发情况下通过 asyncio.getaddrinfo 串行化 DNS 查找,而 aiohttp 使用自己的解析器来避免这种瓶颈。
无需生成器配置。[aiohttp] 额外依赖、运行时自动检测和 CI 覆盖会为每个 Python SDK 生成。
安装
SDK 用户可以通过安装 aiohttp 额外依赖来选择使用:
或者使用 Poetry:
如果用户向异步客户端构造函数传递自定义的 httpx_client,将跳过自动检测并按原样使用提供的客户端。
生成的依赖项
生成的 pyproject.toml 包含一个 [aiohttp] 可选依赖组:
pyproject.toml
如果您通过 generators.yml 中的 extras 配置选项定义自己的额外依赖,内置的 aiohttp 额外依赖会被保留并与您的自定义配置合并。
CI 测试
生成的 GitHub Actions 工作流程分两轮运行测试,以覆盖两种传输路径:
- 不带 aiohttp 额外依赖的标准测试。
- 安装额外依赖后标记为
@pytest.mark.aiohttp的测试。
要在本地验证 aiohttp 路径: