Sioux Global Reservation API Dokümanı

Bu doküman, Sioux Global tarafından sağlanan Reservation API servisine bağlanacak istemci sistem için entegrasyon bilgilerini içerir.


1) Amaç ve Kapsam

Bu API yalnızca rezervasyon listeleme ve rezervasyon status güncelleme işlemleri için tasarlanmıştır.

Desteklenen işlemler

Desteklenmeyen işlemler


2) Ortam ve Erişim Bilgileri

Production (Canlı)

Health Check

GET /healthz


3) Güvenlik Gereksinimleri (Zorunlu)

3.1 IP Allowlist (Zorunlu)

API yalnızca izin verilen istemci çıkış IP adreslerinden gelen istekleri kabul eder.

Hata durumu:

{"title":"Forbidden","status":403,"detail":"IP address is not allowed."}

3.2 API Key (Zorunlu)

Reservations endpoint’leri için her istekte aşağıdaki header zorunludur:

Örnek:

X-Api-Key: <PROD_API_KEY>

Hata durumları:


4) İstek Formatı


5) Status Değerleri

Rezervasyon durumları integer olarak tutulur. Aşağıdaki tablo, status kodlarının anlamlarını belirtir:

Status Açıklama
1Pending
2Sent
3Modification
4Confirmed
5Declined
6Cancelled
7Pending Cancellation
8Sent Resbox

6) Status Güncelleme Kuralları

6.1 İzinli Status Listesi

Status update işleminde gönderilebilecek status değerleri yalnızca aşağıdaki listedeki değerlerdir:

1, 2, 3, 4, 5, 6, 7, 8

Kural 1 (Geçersiz Status): İstek body içinde gönderilen status değeri bu liste dışında ise istek reddedilir.

Hata kodu: 400 Bad Request

Örnek Hata Yanıtı (Geçersiz Status):

{
  "title": "Bad Request",
  "status": 400,
  "detail": "Invalid status value. Allowed values: 1,2,3,4,5,6,7,8."
}

6.2 Cancelled Kilidi

Kural 2 (Cancelled Kilidi): Rezervasyonun mevcut status değeri 6 (Cancelled) ise status başka bir değere değiştirilemez.

Hata kodu: 409 Conflict

Özet: İstemci sadece izinli değerleri gönderir; ayrıca Cancelled olan kayıtlar değiştirilemez.


7) Endpoint’ler

7.1 Rezervasyon Listeleme

HTTP
GET /api/reservations
GET /api/reservations?status={status}
Query Parametre status (opsiyonel, int): Sadece belirtilen status değerindeki rezervasyonları getirir.
Başarılı Yanıt
200 OK
JSON array
Yanıt alanları (minimum): id (int), status (int)

Örnek curl:

curl -k "https://reservationapi.siouxglobal.com/api/reservations?status=1" \
  -H "X-Api-Key: <PROD_API_KEY>"

7.2 Rezervasyon Status Güncelleme

HTTP PUT /api/reservations/{id}/status
Path Parametre id (int): Rezervasyon Id
Request Body
{ "status": 6 }
Başarılı Yanıt 204 No Content

Örnek curl:

curl -k -X PUT "https://reservationapi.siouxglobal.com/api/reservations/123/status" \
  -H "X-Api-Key: <PROD_API_KEY>" \
  -H "Content-Type: application/json" \
  -d "{\"status\":6}"

8) İş Kuralları – Cancelled (İptal) Kilidi

Cancelled kilidi status update işlemi için geçerlidir.

Sistemde Cancelled durumunun integer karşılığı:

Kural:

Hata durumu:

{
  "title": "Conflict",
  "status": 409,
  "detail": "Reservation is cancelled (Status=6). Status cannot be changed."
}

9) Health Check

HTTP GET /healthz
Güvenlik
✅ IP Allowlist uygulanır
❌ X-Api-Key gerekmez
Başarılı Yanıt 200 OK — Body: "OK"

10) Hata Kodları (Özet)


11) Paylaşım Notu (Önemli)