Klaidos
HTTP būsenos kodai ir tikslios Duomenų API grąžinamų klaidų struktūros – su interaktyvia peržiūra.
Atnaujinta
API naudoja standartinius HTTP būsenos kodus. 2xx reiškia sėkmę; bet kas kita
turi klaidos turinį, o turinio forma priklauso nuo to, kuris sluoksnis suklydo.
Pasirinkite būsenos kodą žemiau ir pamatysite, kada jis įvyksta, ką tiksliai
grąžina API ir kaip tai tvarkyti.
Užklausos kūnas netinkamas dar prieš vykdant užklausą – dažniausiai limit arba offset nėra skaičius.
{ "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1", "title": "One or more validation errors occurred.", "status": 400, "errors": { "$.limit": [ "The JSON value could not be converted to System.Int32." ] }, "traceId": "00-ffc84beb047191d9…-00"}Siųskite tinkamą JSON su teisingais tipais (limit ir offset yra skaičiai, ne eilutės). errors objektas nurodo kiekvieną klaidingą lauką pagal jo JSON kelią.
Iš kur ateina forma
{ message, error_code }– duomenų sluoksnis (pvz.,404trūkstamai lentelei).{ error, error_code }– programos klaidos objektas, aprašytas OpenAPI specifikacijoje.error code: NNN(grynas tekstas) – sąsajos lygio5xx, kuris nepasiekė programos.- RFC 9110 problemos dokumentas – užklausos validacija (
400/422), klaidingi laukai poerrors.
Kai yra, skaitykite error_code dėl pastovios mašininės priežasties ir grįžkite
prie žmogui skirtos žinutės.
Kas dažniausiai nustebina
Netinkamas filter arba nežinomas stulpelis grąžina 502, o ne 400. Filtras
perduodamas tiesiai užklausų varikliui, todėl jį atmeta variklis, o ne užklausos
validatorius. Taigi:
-
Netinkamas operatorius (
._gte) ar stulpelio pavadinimas → 502, turinyserror code: 502. -
Netinkamas reikšmės tipas (
limit: "abc") → 400, aukščiau parodytas RFC problemos dokumentas.
Tikslią filtro gramatiką rasite skiltyje Užklausos.
Klaidų tvarkymas
-
Pirmiausia patikrinkite būsenos kodą, tada analizuokite turinį pagal aukščiau pateiktas formas.
-
404yra įprasta naršant – vardų erdvė tiesiog gali neturėti tokios lentelės. -
502/503/504atveju kartokite su atidėjimu – bet pirma atmeskite netinkamą užklausą (tai tas pats kodas, kurį variklis grąžina esant netinkamam filtrui).
Užklausos į lenteles
Filtro operatoriai ir _and/_or gramatika.
Pavyzdžiai
Kopijuojami sprendimai dažnoms užduotims.
Taip pat žiūrėkite
Kaip vertinate šį puslapį?