toJson()
함수 시그니처
toJson: () => Promise<T>
설명
현재 빌더에 구성된 설정으로 fetch() 요청을 실행하고, 응답에 네이티브 Response.json()을 호출하여 JSON 값을 반환합니다.
반환 타입 T는 get<T>(), post<T>(), put<T>(), delete<T>() 또는 api<T>()에서 지정한 타입입니다.
toJson() 자체는 새로운 RequestInit 또는 Header 속성을 추가하지 않습니다.
예제
import { dench } from 'dench-fetch';
type User = {
id: number;
name: string;
};
const api = dench('https://api.example.com');
const user = await api
.get<User>('/users/1')
.auth('access-token')
.toJson();
실행되는 요청의 RequestInit과 Header는 다음과 같습니다.
{
method: 'GET',
headers: {
Authorization: 'Bearer access-token',
},
}
응답은 내부적으로 다음과 같이 처리됩니다.
const response = await fetch(url, requestInit);
const user = await response.json() as User;
주의사항
T는 TypeScript 컴파일 타임 타입이며, 응답 JSON이 실제로T와 일치하는지 런타임에서 검증하지 않습니다.- 응답 body가 올바른 JSON이 아니거나 비어 있다면
Response.json()에서 오류가 발생합니다. - 응답의
ok가false이면 JSON을 파싱하지 않고 HTTP 실패 오류를 던집니다. - 같은 빌더에서
toJson()을 다시 호출하면 기존 응답을 재사용하지 않고 새로운 요청을 실행합니다.