Temel URL
https://1t1t.xyz/api/v1
Tüm API istekleri yukarıdaki temel URL'ye yapılmalıdır. Tüm yanıtlar JSON formatındadır.
Kimlik Doğrulama
API, kimlik doğrulama için JWT token kullanır. Token'ı Authorization header'ında gönderin:
Authorization: Bearer jwt_token_buraya
POST
/auth/login
Kullanıcı girişi yapın ve JWT token alın
İstek Gövdesi:
{
"email": "kullanici@example.com",
"password": "sifreniz"
}
Yanıt:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 3600,
"user": {
"user_id": 1,
"username": "ahmet_yilmaz",
"email": "kullanici@example.com"
}
}
POST
/auth/register
Yeni kullanıcı hesabı oluşturun
İstek Gövdesi:
{
"username": "ahmet_yilmaz",
"email": "kullanici@example.com",
"password": "guvenli_sifre",
"first_name": "Ahmet",
"last_name": "Yılmaz",
"phone": "+905551234567"
}
Kullanıcılar
GET
/user/profile
Mevcut kullanıcının profil bilgilerini getir
🔒 Kimlik Doğrulama Gerekli
Bu endpoint Authorization header'ında geçerli JWT token gerektirir.
PUT
/user/profile
Kullanıcı profil bilgilerini güncelle
İstek Gövdesi:
{
"first_name": "Ahmet",
"last_name": "Yılmaz",
"phone": "+905551234567",
"language": "tr",
"timezone": "Europe/Istanbul",
"notification_email": true,
"notification_sms": false,
"notification_push": true
}
Tekneler
GET
/boats
Mevcut kullanıcının erişebileceği tekneleri listele
Sorgu Parametreleri:
Parametre | Tip | Gerekli | Açıklama |
---|---|---|---|
status | string | opsiyonel | Tekne durumuna göre filtrele: active, inactive |
type | string | opsiyonel | Tekne tipine göre filtrele: motor, yelken, balik, yat, jetski |
POST
/boats
Sisteme yeni tekne ekle
İstek Gövdesi:
{
"boat_name": "Deniz Kaşifi",
"imei": "123456789012345",
"boat_type": "motor",
"length_m": 12.5,
"model": "Sunseeker Manhattan 52",
"year_built": 2020,
"license_number": "TR-12345",
"description": "Lüks motor yat"
}
GET
/boats/{boat_id}
Belirli bir teknenin detaylı bilgilerini getir
GET
/boats/{boat_id}/status
Teknenin mevcut durumu ve konumunu getir
Yanıt:
{
"boat_id": 1,
"boat_name": "Deniz Kaşifi",
"last_update": "2024-01-15T14:30:25.123Z",
"location": {
"latitude": 41.0082,
"longitude": 28.9784,
"speed_kmh": 15.6,
"heading": 245.8
},
"engine": {
"status": "running",
"rpm": 2800,
"temperature_c": 85
},
"fuel_level_percent": 68,
"battery_level_percent": 92,
"in_safe_zone": true,
"device_status": "online"
}
Takip ve GPS Verileri
POST
/tracking/gps
IoT cihazından GPS verisi gönder
İstek Gövdesi:
{
"imei": "123456789012345",
"timestamp": "2024-01-15T14:30:25.123Z",
"latitude": 41.0082,
"longitude": 28.9784,
"altitude": 5.2,
"speed_kmh": 15.6,
"heading": 245.8,
"satellites": 8,
"hdop": 1.2,
"signal_strength": -65,
"battery_voltage": 12.8
}
POST
/tracking/canbus
IoT cihazından CAN Bus verisi gönder
İstek Gövdesi:
{
"imei": "123456789012345",
"timestamp": "2024-01-15T14:30:25.123Z",
"engine_rpm": 2800,
"engine_temp_c": 85,
"engine_oil_pressure": 4.2,
"fuel_level_percent": 68,
"fuel_flow_lh": 12.5,
"engine_hours": 1247.3,
"coolant_temp_c": 78,
"alternator_voltage": 14.2,
"battery_voltage": 12.8,
"water_temp_c": 18,
"depth_m": 15.5
}
GET
/boats/{boat_id}/history
Geçmiş GPS takip verilerini getir
Sorgu Parametreleri:
Parametre | Tip | Gerekli | Açıklama |
---|---|---|---|
start_date | datetime | gerekli | Başlangıç tarihi (ISO 8601 format) |
end_date | datetime | gerekli | Bitiş tarihi (ISO 8601 format) |
limit | integer | opsiyonel | Maksimum kayıt sayısı (varsayılan: 1000) |
Güvenli Bölgeler
GET
/boats/{boat_id}/safe-zones
Bir teknenin tüm güvenli bölgelerini getir
POST
/boats/{boat_id}/safe-zones
Yeni güvenli bölge oluştur
İstek Gövdesi (Dairesel Bölge):
{
"zone_name": "Ev Limanı",
"zone_type": "marina",
"center_lat": 41.0082,
"center_lng": 28.9784,
"radius_meters": 500,
"alert_on_exit": true,
"alert_on_enter": false
}
İstek Gövdesi (Çokgen Bölge):
{
"zone_name": "Balık Avlama Alanı",
"zone_type": "fishing",
"coordinates": [
{
"lat": 41.0082,
"lng": 28.9784
},
{
"lat": 41.0092,
"lng": 28.9794
},
{
"lat": 41.0088,
"lng": 28.9804
},
{
"lat": 41.0078,
"lng": 28.9794
}
],
"alert_on_exit": true,
"alert_on_enter": false
}
DELETE
/boats/{boat_id}/safe-zones/{zone_id}
Güvenli bölgeyi sil
Alarmlar
GET
/alerts
Kullanıcının tekneleri için alarmları getir
Sorgu Parametreleri:
Parametre | Tip | Gerekli | Açıklama |
---|---|---|---|
boat_id | integer | opsiyonel | Belirli tekneye göre filtrele |
status | string | opsiyonel | active, resolved |
severity | string | opsiyonel | info, warning, critical, emergency |
PUT
/alerts/{alert_id}/resolve
Alarmı çözüldü olarak işaretle
Yetki Seviyeleri
Sistem tekne erişimi için dört seviyeli yetki sistemi destekler:
Seviye | Konum Görme | Geçmiş Görme | Alarm Alma | Cihaz Kontrolü | Bölge Yönetimi | Paylaşım |
---|---|---|---|---|---|---|
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
✅ | ✅ | ✅ | ✅ | ✅ | ❌ | |
✅ | ✅ | ✅ | ❌ | ❌ | ❌ | |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Hata Yönetimi
API standart HTTP durum kodlarını kullanır ve hata bilgilerini JSON formatında döner:
Yaygın Hata Yanıtları:
- 200 Başarılı
- 201 Oluşturuldu
- 400 Hatalı İstek - Geçersiz parametreler
- 401 Yetkisiz - Geçersiz veya eksik token
- 403 Yasaklı - Yetersiz izinler
- 404 Bulunamadı - Kaynak mevcut değil
- 429 Çok Fazla İstek - Hız limiti aşıldı
- 500 Sunucu Hatası
Hata Yanıt Formatı:
{
"error": {
"code": 400,
"message": "Geçersiz istek parametreleri",
"details": "'imei' alanı zorunludur ve 15 haneli olmalıdır"
}
}