开源的 OpenAPI/Swagger 工具集,提供交互式 API 文档、离线优先的 API 客户端和多种 Web 框架集成。
L-Blondy/up-fetch
基于原生 fetch 的 TypeScript 客户端构建库,支持 schema 校验、重试、超时和进度跟踪。
- Star
- 1,409
- Fork
- 22
- 未关闭 Issue
- 2
- 最近提交
- 2个月前
这是什么?
upfetch 是一个包裹原生 fetch 的客户端构建库。创建实例时可以设置 baseUrl、headers、timeout、retry 等默认选项,之后的调用方式与 fetch 基本一致。params 和 body 可以直接传入普通对象,JSON 响应会自动解析。
它支持任何遵循 Standard Schema 规范的校验库,例如 zod、valibot 和 arktype。传入 schema 后,响应会被校验并带上推导出的类型,校验失败时抛出 ResponseValidationError。非 ok 的响应默认抛出 ResponseError,也可以通过 reject 和 parseRejected 自定义判断与错误结构。
此外,它提供可配置次数、延迟和条件的自动重试、单个请求超时、生命周期钩子,以及上传和下载的进度与流式回调。该包以 up-fetch 发布在 npm 上,可运行于浏览器、Node.js、Bun、Deno、Cloudflare Workers 和 Vercel Edge Runtime。
核心功能
- 01通过 Standard Schema 支持 zod、valibot、arktype 等校验库
- 02查询参数和请求体可直接使用普通对象,并自动序列化为 JSON
- 03支持可配置次数、延迟和条件的自动重试
- 04支持单个请求及全局默认的超时设置
- 05提供上传、下载进度和流式数据回调
- 06提供请求、响应、成功、失败和重试等生命周期钩子
适用场景
- 在 TypeScript 前端中构建带运行时校验的类型安全 API 客户端
- 为不稳定的第三方 API 调用添加重试和超时
- 在 Web 应用中展示文件上传或下载进度
- 消费流式响应,例如 AI 对话的逐段输出
快速上手
- 1
从 npm 安装该包
npm i up-fetch - 2
基于原生 fetch 创建 upfetch 实例
- 3
发起带可选架构校验的请求
使用前须知
- 架构校验需要单独安装 zod 或 valibot 等库。
标签
常见问题
- up-fetch 是什么?
- 基于原生 fetch 的 TypeScript 客户端构建库,支持 schema 校验、重试、超时和进度跟踪。 upfetch 是一个包裹原生 fetch 的客户端构建库。创建实例时可以设置 baseUrl、headers、timeout、retry 等默认选项,之后的调用方式与 fetch 基本一致。params 和 body 可以直接传入普通对象,JSON 响应会自动解析。
- up-fetch 可以免费使用吗?用的什么许可证?
- up-fetch 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- up-fetch 还在维护吗?
- 半年内有更新。up-fetch 最近一次提交是在 2026年9月1日。
- up-fetch 适合用来做什么?
- 在 TypeScript 前端中构建带运行时校验的类型安全 API 客户端 为不稳定的第三方 API 调用添加重试和超时 在 Web 应用中展示文件上传或下载进度 消费流式响应,例如 AI 对话的逐段输出
- up-fetch 怎么安装和运行?
- 从 npm 安装该包: npm i up-fetch 基于原生 fetch 创建 upfetch 实例 发起带可选架构校验的请求
- 在哪里获取 up-fetch?
- 源代码和安装说明在 GitHub 上:https://github.com/L-Blondy/up-fetch
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源 API 开发工具,支持 REST、GraphQL、WebSocket 等协议,提供网页、桌面和命令行版本。
开源跨平台 API 客户端,支持 GraphQL、REST、WebSocket、SSE 和 gRPC,可本地、Git 或云端存储。
免费开源的自托管媒体服务器后端与 API,可将影视与音乐流式传输到各类设备,是 Plex、Emby 的开源替代。
一份整理了公开与付费实时数据源的清单,涵盖金融、交通、天气、新闻与网络安全等领域。
一个用于数据请求的 React Hooks 库,先返回缓存数据,再在后台自动重新验证。