類型與錯誤
整理 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 문자열 순서로 결정됩니다.