상태 코드를 직접 해석하지 않아도 돼
SDK는 BadRequestError, AuthenticationError, PermissionDeniedError, NotFoundError, RateLimitError, InternalServerError, APIConnectionError 같은 구체 클래스를 내보내. instanceof로 분기하면 문자열이나 상태 코드 목록을 곳곳에 복사하지 않고도 책임과 대응을 구분할 수 있어.
자동 재시도는 클라이언트 성격에 맞춰
생성자의 maxRetries로 일반 호출의 429와 5xx 재시도 횟수를 정해. 기본값은 2야. 즉시 실패를 보여 줘야 하는 CLI는 작게, 오래 도는 배치 작업은 더 크게 둘 수 있어. 스트리밍과 부수 효과가 있는 호출에는 같은 값을 무심코 적용하지 마.
비싼 호출에는 멱등성 키를 붙여
호출별 옵션의 headers: { 'Idempotency-Key': key }로 키를 전달해. 네트워크가 흔들린 뒤 같은 요청을 다시 보내도 원래 결과를 재사용할 수 있어 이중 과금을 막아. 특히 긴 Opus 생성처럼 한 번의 비용이 큰 작업에서 의미가 커.
원칙: 구체 오류 클래스는 HTTP 분기를 컴파일러가 이해하는 정책 분기로 바꿔 줘. 그대로 활용해.