Referencia chýb API
Táto príručka zdokumentuje všetky kódy chýb, formáty odoziev a kroky na riešenie problémov pre API TeamDay.
Formát chybovej odozvy
Všetky chyby API sa riadia konzistentnou štruktúrou JSON:
{
"error": true,
"statusCode": 400,
"statusMessage": "Bad Request",
"message": "Podrobný popis chyby"
}
Polia:
error(boolean) - Vždytruepre chybové odozvystatusCode(number) - HTTP stavový kódstatusMessage(string) - Čitateľný stavmessage(string) - Podrobné vysvetlenie chyby
HTTP stavové kódy
2xx Úspech
Toto nie sú chyby, ale úspešné odozvy:
200 OK
Význam: Požiadavka bola úspešná
Používané v:
- Požiadavky GET (zoznam, získanie podrobností)
- Požiadavky PATCH (aktualizácia)
- Požiadavky DELETE (měkké vymazanie)
- Požiadavky POST (zrušenie vykonávania)
Príklad:
{
"id": "agent_abc123",
"name": "Pomocník pre výskum",
"...": "..."
}
201 Vytvorené
Význam: Prostredok bol úspešne vytvorený
Používané v:
- Požiadavky POST (vytvorenie agenta, úlohy)
Príklad:
{
"id": "agent_abc123",
"name": "Pomocník pre výskum",
"createdAt": "2025-12-09T10:00:00Z",
"...": "..."
}
4xx Chyby klienta
Tieto chyby naznačujú problémy s požiadavkou.
400 Chybná požiadavka
Význam: Neplatné parametre požiadavky alebo chýbajúce povinné polia
Bežné príčiny:
- Chýbajúce povinné polia
- Neplatné hodnoty polí
- Malformovaný JSON
- Neplatné parametre dotazu
Príklady:
Chýbajúce povinné pole:
{
"error": true,
"statusCode": 400,
"statusMessage": "Bad Request",
"message": "Missing required field: name"
}
Neplatná hodnota viditeľnosti:
{
"error": true,
"statusCode": 400,
"statusMessage": "Bad Request",
"message": "Invalid visibility value. Must be: private, organization, or public"
}
Ako opraviť:
- Skontrolujte, či telo požiadavky zodpovedá dokumentácii API
- Potvrďte, že sú prítomné všetky povinné polia
- Overte, že hodnoty polí sú platné (výčty, typy)
- Otestujte syntax JSON pomocou validátora
401 Neoprávnené
Významnosť: Autentifikácia zlyhala alebo chýba
Bežné príčiny:
- Chýbajúca hlavička
Authorization - Neplatný token
- Expirovaný token
- Nesprávny formát tokenu
Ako opraviť:
- Skontrolujte, či je prítomná hlavička
Authorization - Overte hlavičku formát:
Authorization: Bearer td_xxxxx... - Potvrďte, že token nie je expirovaný v Nastaveniach → Prístup API
- Vygenerujte nový token, ak je potrebný
- Skontrolujte, či bol token skopírovaný správne (bez extra medzier)
403 Zakázané
Zmyslenie: Autentifikovaný, ale nie oprávnené na túto akciu
Bežné príčiny:
- Používateľ nemá požadované povolenia
- Prístup organizácie bol odvolaný
- Prostredok patrí inej organizácii
Príklad:
{
"error": true,
"statusCode": 403,
"statusMessage": "Forbidden",
"message": "You don't have permission to access this resource"
}
Ako opraviť:
- Overte, že používateľ má správnu rolu/povolenia
- Skontrolujte, že používateľ stále patrí do organizácie
- Potvrďte, že prostredok patrí vašej organizácii
- Kontaktujte administrátora organizácie na zmeny povolení
404 Nenájdené
Zmyslenie: Prostredok neexistuje
Bežné príčiny:
- Neplatné ID prostriedku
- Prostredok bol vymazaný
- Prostredok patrí inej organizácii
- Preklep v URL koncového bodu
Príklady:
Agent nenájdený:
{
"error": true,
"statusCode": 404,
"statusMessage": "Not Found",
"message": "Agent not found"
}
Ako opraviť:
- Overte, že ID prostriedku je správne
- Skontrolujte, že prostredok nebol vymazaný
- Potvrďte, že prostredok patrí vašej organizácii
- Uveďte zoznam prostredkov na nájdenie správneho ID
- Skontrolujte chyby v URL
429 Príliš mnoho požiadaviek
Zmyslenie: Prekročil limit frekvencie
Stav: V súčasnosti nie je vynútený, ale môže byť v budúcnosti
Ako opraviť:
- Implementujte exponenciálny backoff
- Znížte frekvenciu požiadaviek
- Ukladajte do cache odozvy, keď je to možné
- Kontaktujte podporu na vyššie limity
5xx Chyby servera
Tieto chyby naznačujú problémy na strane servera.
500 Interná chyba servera
Zmyslenie: Neočakávaná chyba servera
Bežné príčiny:
- Problémy s pripojením k databáze
- Selhanie závislosti služby
- Neošetrená výnimka
- Chyba konfigurácie
Príklad:
{
"error": true,
"statusCode": 500,
"statusMessage": "Internal Server Error",
"message": "An unexpected error occurred"
}
Ako opraviť:
- Opakujte požiadavku (môže byť prechodný)
- Skontrolujte stránku stavu API
- Počkajte niekoľko minút a skúste znova
- Kontaktujte podporu, ak je to pretrvávajúce
- Skontrolujte známe problémy v dokumentácii
503 Služba nedostupná
Zmyslenie: Služba je dočasne nedostupná
Bežné príčiny:
- Plánovaná údržba
- Preťaženie systému
- Selhanie závislej služby
Príklad:
{
"error": true,
"statusCode": 503,
"statusMessage": "Service Unavailable",
"message": "Service temporarily unavailable. Please retry."
}
Ako opraviť:
- Počkajte a opakujte s exponenciálnym backoffom
- Skontrolujte stránku stavu na okna údržby
- Kontaktujte podporu, ak je výpadok dlhý
Osvedčené postupy spracovania chýb
1. Vždy kontrolujte stavové kódy
const response = await fetch('https://us.teamday.ai/api/v1/agents', {
headers: {
'Authorization': `Bearer ${token}`
}
})
if (!response.ok) {
const error = await response.json()
console.error(`API Error ${error.statusCode}: ${error.message}`)
// Spracujte chybu príslušne
}
const data = await response.json()
2. Spracujte špecifické prípady chýb
async function handleApiError(response) {
const error = await response.json()
switch (error.statusCode) {
case 400:
// Chyba validácie - opraviť požiadavku
console.error('Invalid request:', error.message)
break
case 401:
// Chyba autentifikácie - obnoviť token alebo znova sa autentifikovať
console.error('Authentication failed:', error.message)
await refreshToken()
break
case 404:
// Nenájdené - prostredok neexistuje
console.error('Resource not found:', error.message)
break
case 500:
// Chyba servera - opakovať s backoffom
console.error('Server error:', error.message)
await retryWithBackoff()
break
default:
console.error('Unexpected error:', error)
}
}
3. Implementujte logiku opakovaných pokusov
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fetch(url, options)
if (response.ok) {
return await response.json()
}
const error = await response.json()
// Neopakovať chyby klienta (4xx)
if (error.statusCode >= 400 && error.statusCode < 500) {
throw new Error(error.message)
}
// Opakovať chyby servera (5xx) s exponenciálnym backoffom
if (i < maxRetries - 1) {
const delay = Math.pow(2, i) * 1000 // 1s, 2s, 4s
console.log(`Retrying in ${delay}ms...`)
await new Promise(resolve => setTimeout(resolve, delay))
continue
}
throw new Error(error.message)
} catch (err) {
if (i === maxRetries - 1) throw err
}
}
}
Tabuľka referencie chýb
Rýchla referencia pre všetky chyby API:
| Kód | Správa | Príčina | Riešenie |
|---|---|---|---|
| 400 | Chýbajúce povinné pole | Opustené povinné pole | Pridajte chýbajúce pole |
| 400 | Neplatný JSON | Malformovaný JSON | Overte syntax JSON |
| 401 | Vyžaduje sa hlavička Authorization | Chýbajúca hlavička | Pridajte hlavičku Authorization |
| 401 | Neplatný alebo expirovaný token | Zlý token | Vygenerujte nový token |
| 403 | Bez povolenia | Nedostatočné povolenia | Skontrolujte rolu používateľa |
| 404 | Agent nenájdený | Neplatné ID agenta | Overte, že agent existuje |
| 429 | Limit frekvencie prekročený | Príliš mnoho požiadaviek | Implementujte backoff |
| 500 | Interná chyba servera | Problém servera | Opakovať s backoffom |
| 503 | Služba nedostupná | Údržba/preťaženie | Počkajte a opakovajte |
Kontaktovanie podpory
Email: support at teamday.ai
Zahrňte do požiadavky na podporu:
- Úplná chybová správa (úplný JSON)
- Podrobnosti požiadavky (koncový bod, metóda, hlavičky - BEZ tokenu)
- Kroky na reprodukciu
- Očakávané vs. skutočné správanie
Posledná aktualizácia: 9. december 2025