TSone

请求 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' });

客户端与拦截器

名称签名说明
createRequestcreateRequest(defaults?: RequestDefaults): RequestClient创建相互隔离的请求客户端。
requestRequestClient默认请求客户端实例。
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