Üretim API’si
API hataları
Tek RFC 9457 Problem Details zarfı, kararlı kodlar ve güvenli işleme yaklaşımı.
Bu sayfada
Her API hatası Content-Type: application/problem+json ile ve RFC 9457 Problem Details biçiminde gelir. Energy API'nin başka hata zarfı yoktur.
Zarf
{"type":"https://rentron.xyz/docs/errors/codes#energy_order_not_found","title":"Not Found","status":404,"detail":"Order was not found.","code":"energy_order_not_found"}
| Alan | Tür | Amaç |
|---|---|---|
type |
string | Kararlı hata türü URI'si. |
title |
string | Kısa HTTP kategorisi. |
status |
integer | Gövdede de yer alan HTTP durum kodu. |
detail |
string | İnsan için güvenli açıklama. |
code |
string | Uygulama dallanması için kararlı makine kodu. |
field |
string veya null | Varsa hatalı tek alan. |
errors |
array veya null | code, field, message içeren alan hataları. |
Uygulama mantığını code üzerinden kurun. detail operatöre yedek metin olarak gösterilebilir, ancak programatik olarak ayrıştırılmamalıdır.
Birden fazla alan hatası
{"type":"https://rentron.xyz/docs/errors/codes#validation_failed","title":"Bad Request","status":400,"detail":"Request validation failed.","code":"validation_failed","errors":[{"code":"field_invalid_format","field":"address","message":"Request validation failed."}]}
Yaygın kodlar
| Kod | HTTP | İşlem |
|---|---|---|
malformed_request |
400 | JSON'u ve alan türlerini düzeltin. |
validation_failed |
400 | field/errors değerini okuyup girdiyi düzeltin. |
unauthorized |
401 | HMAC'i, zaman damgasını ve kimlik bilgisini kontrol edin. |
energy_order_not_found |
404 | Siparişi kullanılamaz kabul edin; sahiplik açıklanmaz. |
energy_order_idempotency_conflict |
409 | Aynı kimliği başka siparişte kullanmayın. |
payload_too_large |
413 | İstek gövdesini küçültün. |
unsupported_media_type |
415 | application/json gönderin. |
rate_limited |
429 | Retry-After değerine uyun. |
energy_api_unavailable |
503 | Artan beklemeyle yeniden deneyin. |
Güvenli işleyici
if (!response.ok) {
const problem = await response.json();
if (response.status === 429) scheduleRetry(response.headers.get('Retry-After'));
throw new RentronApiError(problem.code, problem.detail, problem.errors ?? []);
}
Rentron