タイプとエラー
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 문자열 순서로 결정됩니다.