类型与错误
整理 HTTP 请求合同和标准错误对象的类型边界.
OpenApiPathsLike
ts
export type OpenApiPathsLike = object;编译时约束本身是宽泛的 对象实际类型推断是Paths[path][method].parameters和 requestBody.content["application/json"]当存在相同的 OpenAPI 风格属性时具体化.
ServiceArguments<Paths, TPath, TMethod, R>
| Name | Type | Default | 描述 |
|---|---|---|---|
url 必需的 | TPath | - | Paths key. |
method 必需的 | TMethod | - | Paths[TPath] method key. |
pathVariable | parameters.path | Record | - | path parameters가 있으면 해당 타입, 없으면 일반 Record fallback. |
queryString | parameters.query | Record | - | query parameters가 있으면 해당 타입, 없으면 일반 Record fallback. |
body | requestBody application/json | unknown | - | JSON request body schema가 있으면 해당 타입. |
resultInterceptor | (response: Response) => Promise<R> | - | 직접 response parser. |
headers | Readonly<Record<string, string>> | - | 요청별 headers. |
CacheForService<CacheName>
| Name | Type | Default | 描述 |
|---|---|---|---|
cacheTime 必需的 | number | - | CSR shareReplay windowTime 또는 SSR revalidate 기준 milliseconds. |
cacheSize | number | - | CSR shareReplay bufferSize. SSR에서는 사용하지 않습니다. |
cacheName 必需的 | CacheName | - | cache key prefix와 Next.js cache tag. |
HttpResponseError<Args>
ts
client.callApi<Response>({
url: "/profile/me",
method: "get",
}).subscribe({
error: (error) => {
if (isHttpResponseError(error)) {
console.log(error.status);
console.log(error.response);
console.log(error.args);
console.log(error.data);
}
},
});response
원본 Fetch Response.
args
실패한 ServiceArguments.
data
JSON 또는 text로 파싱한 에러 body.
status
response.status getter.
message
body.message → defaultErrorMessage → 기본 HTTP ERROR 문자열 순서로 결정됩니다.