Kodet e gabimit dhe zarfi i gabimit

Një formë e vetme në çdo rrugë: type, code, message, param, doc_url, request_id dhe errors.

Një formë e vetme në çdo rrugë: type, code, message, param, doc_url, request_id dhe errors.

← Kthehu te dokumentacioni i API-t

Fatura jote e parë në 6 hapa

  1. Çdo 4xx dhe 5xx kthen { "error": { type, code, message, param?, doc_url, request_id, errors? } }.
  2. Vendos sipas type nëse ka kuptim riprovimi, dhe lidh code me sistemin tënd.
  3. param tregon fushën problematike, p.sh. lines.0.vat_rate; errors[] shfaqet kur janë disa.
  4. Regjistro request_id në çdo gabim — na lejon të gjejmë kërkesën e saktë në regjistrat tanë.

Çfarë është API e 4invoices

json
{
  "error": {
    "type": "invalid_request_error",
    "code": "validation_failed",
    "message": "Datele trimise nu sunt valide.",
    "param": "lines.0.vat_rate",
    "doc_url": "https://4invoices.net/ro/api-dezvoltatori#errors",
    "request_id": "req_8a893f2f33d4472da8d6e144",
    "errors": [
      { "param": "lines.0.vat_rate", "message": "VAT rate must be a percent (21), not a fraction", "type": "value_error" }
    ]
  }
}

https://api.4invoices.net/v1 · https://api.4invoices.net/v1/openapi.json

Gabimet

StatusiLlojiKodi
401authentication_errormissing_bearer_token
401authentication_errorunauthorized
403permission_errorforbidden
404not_found_errornot_found
409conflict_erroridempotency_key_reuse
409conflict_erroridempotency_in_progress
422invalid_request_errorvalidation_failed
422invalid_request_errorinvalid_json_number
502upstream_errorupstream_error
503service_unavailable_errorservice_unavailable

Gabimet e zakonshme

  • rate_limit_error dhe dy llojet upstream riprovohen. authentication_error, permission_error dhe invalid_request_error nuk korrigjohen me riprovim.
  • Kthehet gjithashtu 404 për një id që i përket një tjetri klient: ne nuk konfirmojmë kurrë që ekzistojnë të dhënat e dikujt tjetër.
  • 409 idempotency_key_reuse do të thotë që ke ripërdorur një çelës me body tjetër. Mos e detyro: kontrollo çfarë është lëshuar tashmë.
  • doc_url i çdo gabimi të dërgon drejt e te seksioni i gabimeve të kësaj dokumentacioni.
  • Mesazhet janë në rumanisht sepse API shërben një rrjedhë fiskale rumune; mos analizo message, vendos sipas code.

Pyetje dhe përgjigje për zhvilluesit

A mund të mbështet te vlerat e code ndërmjet versioneve?

Po, code është i qëndrueshëm dhe ekziston pikërisht për këtë. message është tekst për njerëzit dhe mund të riformulohet.

Çfarë duhet të bëj në rast 502 ose 503?

Riprovo me backoff eksponencial. Janë gabime upstream ose disponueshmërie të përkohshme, jo probleme të kërkesës sate.

Përse 422 e jo 400 për të dhëna të pavlefshme?

422 tregon JSON të formuar mirë por semantikisht të pavlefshëm — për shembull vat_rate si thyesë. 400 rezervohet për një kërkesë të deformuar.