Sobes.tech
Intern

Kaip patobulinti programą, kad ji nesugriūtų išorinio API klaidos atveju?

sobes.tech AI

Atsakymas iš AI

Kad programa nepasirodytų avarijos dėl išorinio API klaidos, reikia įgyvendinti klaidų tvarkymą ir atsparumo mechanizmus:

  • Naudoti try/catch blokus (ar panašias struktūras) API kvietimo metu išimčių gaudymui.
  • Pridėti laikmačius ir pakartotinius bandymus su eksponentiniu vėlavimu.
  • Naudoti fallback logiką: pavyzdžiui, grąžinti talpykloje saugomus duomenis arba numatytas reikšmes.
  • Registruoti klaidas vėlesnei analizei.
  • Jei reikia, taikyti circuit breaker — laikinai išjungti kvietimus į problematišką API dažnų klaidų atveju.

Go pavyzdys su klaidų tvarkymu ir retry:

func callExternalAPI() (string, error) {
    var result string
    var err error
    for i := 0; i < 3; i++ { // trys bandymai
        result, err = doRequest()
        if err == nil {
            return result, nil
        }
        time.Sleep(time.Duration(i*i) * time.Second) // eksponentinis vėlavimas
    }
    return "", fmt.Errorf("nepavyko po bandymų: %w", err)
}