Geliştirici dokümantasyonu

API çalışma alanı
https://api.rentron.xyz/v1
OpenAPI şeması

Hatalar

// DOC

Ü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 ?? []);
}