Bu doküman, Sioux Global tarafından sağlanan Reservation API servisine bağlanacak istemci sistem için entegrasyon bilgilerini içerir.
Bu API yalnızca rezervasyon listeleme ve rezervasyon status güncelleme işlemleri için tasarlanmıştır.
https://reservationapi.siouxglobal.comGET /healthz
API yalnızca izin verilen istemci çıkış IP adreslerinden gelen istekleri kabul eder.
Hata durumu:
403 Forbidden{"title":"Forbidden","status":403,"detail":"IP address is not allowed."}
Reservations endpoint’leri için her istekte aşağıdaki header zorunludur:
X-Api-KeyÖrnek:
X-Api-Key: <PROD_API_KEY>
Hata durumları:
401 Unauthorized / “Missing API key.”401 Unauthorized / “Invalid API key.”Content-Type: application/jsonRezervasyon durumları integer olarak tutulur. Aşağıdaki tablo, status kodlarının anlamlarını belirtir:
| Status | Açıklama |
|---|---|
1 | Pending |
2 | Sent |
3 | Modification |
4 | Confirmed |
5 | Declined |
6 | Cancelled |
7 | Pending Cancellation |
8 | Sent Resbox |
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."
}
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.
| HTTP |
GET /api/reservationsGET /api/reservations?status={status} |
|---|---|
| Query Parametre | status (opsiyonel, int): Sadece belirtilen status değerindeki rezervasyonları getirir. |
| Başarılı Yanıt |
200 OKJSON 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>"
| HTTP | PUT /api/reservations/{id}/status |
|---|---|
| Path Parametre | id (int): Rezervasyon Id |
| Request Body |
|
| 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}"
Cancelled kilidi status update işlemi için geçerlidir.
Sistemde Cancelled durumunun integer karşılığı:
6Kural:
6 gönderilirse idempotent olarak kabul edilir (204 No Content).Hata durumu:
409 Conflict{
"title": "Conflict",
"status": 409,
"detail": "Reservation is cancelled (Status=6). Status cannot be changed."
}
| HTTP | GET /healthz |
|---|---|
| Güvenlik |
✅ IP Allowlist uygulanır
❌ X-Api-Key gerekmez
|
| Başarılı Yanıt | 200 OK — Body: "OK" |
200 OK → Listeleme başarılı204 No Content → Status güncelleme başarılı400 Bad Request → İstek formatı/parametre hatası (ör. izinli status listesi dışında değer)401 Unauthorized → API Key yok veya yanlış403 Forbidden → IP allowlist dışı404 Not Found → Rezervasyon bulunamadı409 Conflict → Cancelled kilidi nedeniyle değişim reddedildi<PROD_API_KEY> gizli bilgidir; public repo, mail zinciri veya ticket içine açık şekilde yazılmamalıdır.