Najczęstsze kody błędów API

Ostatnia aktualizacja: 3 miesiące temu

Zrozumienie odpowiedzi błędów pomaga szybko diagnozować problemy. Oto najczęstsze błędy, na które możesz natrafić.

400 Bad Request

{
  "error": "media_id is required"
}

Przyczyny:

  • Brak wymaganego parametru

  • Nieprawidłowy format parametru

  • Niepoprawny JSON

Naprawa: Sprawdź, czy treść żądania jest zgodna ze specyfikacją API na api.cathopic.com/docs.

401 Unauthorized

{
  "message": "Unauthorized"
}
or
{
  "error": "Unauthorized token"
}

Przyczyny:

  • Brak lub nieprawidłowy klucz API

  • Wyłączony klucz API

  • Zła nazwa nagłówka

Naprawa: Upewnij się, że nagłówek x-api-key jest poprawny, a klucz jest aktywny w Ustawienia → API.

404 Not Found

{
  "error": "No file found for media_id 1234"
}
or
{
  "error": "Media item not found"
}

Przyczyny:

  • Zasób nie istnieje

  • Zasób został usunięty

  • Złe media_id

Naprawa: Zweryfikuj, czy media_id istnieje, najpierw wyszukując za pomocą /resources.

429 Too Many Requests

{
  "error": "Limit exceed."
}

Przyczyny:

  • Zbyt wiele żądań w krótkim czasie

  • Przekroczono limit zapytań (rate limit)

Naprawa: Zaimplementuj wykładnicze opóźnianie (exponential backoff). Poczekaj i ponów próbę, zwiększając opóźnienia (1s, 2s, 4s itd.).

500 Internal Server Error

{
  "error": "Internal server error"
}

Przyczyny:

  • Przejściowy problem po stronie serwera

  • Niespodziewany stan

Naprawa: Odczekaj chwilę i spróbuj ponownie. Jeśli problem będzie się powtarzać, skontaktuj się z supportem.

Przykład obsługi błędów

async function searchWithErrorHandling(query) {
  try {
    const response = await fetch('https://api.cathopic.com/resources', {
      method: 'POST',
      headers: {
        'x-api-key': apiKey,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ query, page: 1, page_size: 20 })
    });
    
    if (!response.ok) {
      const error = await response.json();
      
      switch (response.status) {
        case 400:
          console.error('Bad request:', error);
          break;
        case 401:
          console.error('Unauthorized. Check your API key.');
          break;
        case 404:
          console.error('Resource not found:', error);
          break;
        case 429:
          console.error('Rate limited. Implementing backoff...');
          await sleep(5000);
          return searchWithErrorHandling(query); // Retry
        case 500:
          console.error('Server error. Retrying in 10s...');
          await sleep(10000);
          return searchWithErrorHandling(query);
        default:
          console.error('Unknown error:', error);
      }
      
      throw new Error(`API error: ${response.status}`);
    }
    
    return await response.json();
  } catch (error) {
    console.error('Request failed:', error);
    throw error;
  }
}

W przypadku uporczywych błędów sprawdź pełną dokumentację API lub skontaktuj się z supportem.

Czy ten artykuł był pomocny?