API
请求 API
请求客户端从独立子路径导入,基于原生 fetch,默认解析 JSON。
import { createRequest } from '@geektech/tsone/request';
const api = createRequest({ baseURL: '/api' });
api.interceptors.request.use((config) => ({
...config,
headers: { ...config.headers, Authorization: 'Bearer token' },
}));
api.interceptors.error.use(() => ({ offline: true }));
const health = await api.get('/health', { responseType: 'text' });客户端与拦截器
| 名称 | 签名 | 说明 |
|---|---|---|
createRequest | createRequest(defaults?: RequestDefaults): RequestClient | 创建相互隔离的请求客户端。 |
request | RequestClient | 默认请求客户端实例。 |
interceptors.request.use | (config: RequestConfig) => RequestConfig | Promise<RequestConfig> | 在 fetch 之前执行,可替换请求配置。 |
interceptors.response.use | (value: unknown) => unknown | Promise<unknown> | 在成功响应解析完成后执行。 |
interceptors.error.use | (error: unknown) => unknown | Promise<unknown> | 处理请求、传输、解析和非 2xx 失败;返回值可恢复请求。 |
返回类型与错误
responseType 默认是 'json'。可使用 'text'、'blob'、'arrayBuffer' 或 'response';其中 'response' 不消费原生 Response。非 2xx 响应会抛出 RequestError,除非失败拦截器返回恢复值。
'json':解析 JSON(默认)'text':响应文本'blob':Blob 数据'arrayBuffer':ArrayBuffer 数据'response':原生 Response