Giriş
restBI API'ye hoş geldiniz. Bu servis, Naeron Flight School Management uygulaması verilerine harici sistemler ve BI (İş Zekası) araçları üzerinden güvenli bir şekilde erişim sağlamak için tasarlanmıştır.
Temel URL (Base URL)
Tüm API istekleri aşağıdaki temel URL kullanılarak yapılmalıdır:
https://api.naeron.com:3110
Kimlik Doğrulama
API'ye yapılan tüm istekler, HTTP `header` bölümünde bir API anahtarı içermelidir. Anahtarı `x-api-key` başlığı altında göndermeniz gerekmektedir.
Örnek `cURL` İsteği:
curl -X GET 'https://api.naeron.com:3110/v1/tableNames' \
--header 'x-api-key: SIZE_VERILEN_API_ANAHTARI'
Önemli Notlar ve Kısıtlamalar
Çalışma Saatleri
Performans optimizasyonu amacıyla, API sadece sunucu saatiyle sabah 03:00 ile 06:00 arasında veri akışına izin vermektedir. Bu saatler dışındaki istekler engellenecektir.
Veri Kısıtlamaları ve Formatı
bi_flightstablosu şu anda sadece 01.01.2025 tarihinden sonraki verileri içermektedir.- Tablolardaki zaman bilgileri (örn:
OffBlock,OnBlock) dakika cinsinden tamsayı (integer) olarak sunulmaktadır.
API Anahtarı Güvenliği
Size sağlanan API anahtarı, yetkilendirildiğiniz tüm verilere okuma erişimi tanır. Bu anahtarın gizli tutulması ve güvenli bir şekilde saklanması kritik öneme sahiptir.
Endpoint'ler
API, verileri çekmek için üç ana endpoint sunar.
/v1/tableNames
/v1/tables
/v1/tables/{tableName}
/v1/tableNames
Erişim yetkiniz olan tüm tabloların isim listesini bir JSON dizisi olarak döndürür.
Örnek Yanıt:
{
"tableNames": [
"bi_corporate_labels",
"bi_students",
"bi_employees",
"bi_aircrafts_simulators",
// ...
]
}
/v1/tables
Erişim yetkiniz olan tüm tabloların verilerini tek bir JSON nesnesi içinde döndürür.
Örnek Yanıt:
{
"tables": {
"bi_corporate_labels": [
{
"m_ID": 506, // integer
"code": "PGS", // string
"name": "Pegasus", // string
"color": "#ff7f27" // string
}
],
"bi_students": [
{
"vm_ID": "s1", // string
"m_ID": 1, // integer
"firstName": "Ad Soyad", // string
"lastFlight": "2020-10-21...", // date (ISO 8601)
// ...
}
],
// ... diğer tablolar
}
}
/v1/tables/{tableName}
Belirtilen tek bir tablonun verilerini döndürür. {tableName} yerine, /v1/tableNames endpoint'inden gelen tablo adlarından birini yazın.
Örnek İstek (bi_bases tablosu için):
https://api.naeron.com:3110/v1/tables/bi_bases
Örnek Yanıt:
{
"data": [
{
"m_ID": 1, // integer
"code": "LTFC", // string
"name": "Isparta S.D. Havalimanı" // string
}
]
}
Mevcut Tablolar
Aşağıda, /v1/tableNames endpoint'inden dönen ve sorgulayabileceğiniz tabloların tam listesi bulunmaktadır.
| Tablo Adı | Açıklama |
|---|---|
| bi_corporate_labels | Kurumsal Etiketler |
| bi_students | Öğrenci Bilgileri |
| bi_student_labels | Öğrenci Etiketleri |
| bi_employees | Personel Bilgileri |
| bi_work_types | Personel Çalışma Tipleri |
| bi_facilities | Tesisler (Havalimanları vb.) |
| bi_aircrafts_simulators | Uçak ve Simülatörler |
| bi_bases | Üs Bilgileri |
| bi_routes | Uçuş Rotaları |
| bi_observer_positions | Gözlemci Pozisyonları |
| bi_flights_duty_connector | Uçuş ve Görev Bağlantıları |
| bi_flights | Uçuş Kayıtları |
| bi_uka | Uçuşa Katılamama Kayıtları |
| bi_budgets | Uçuş Bütçeleri |
| bi_fleets | Filo Bilgileri |
| bi_groups | Eğitim Grupları |
| bi_trainings | Eğitimler |
| bi_training_revisions | Eğitim Revizyonları |
| bi_training_phases | Eğitim Fazları |
| bi_training_master_lessons | Ana Dersler |
| bi_training_phase_lessons | Faz Dersleri |
| bi_student_trainings | Öğrenci Eğitimleri |
| bi_student_training_lessons | Öğrenci Dersleri |
| bi_student_contracts | Öğrenci Sözleşmeleri |
| bi_currencies | Para Birimleri |
| bi_bank_accounts | Banka Hesapları |
| bi_student_payments | Öğrenci Ödemeleri |
| bi_person_activities | Personel Aktiviteleri |
| bi_employee_competences | Personel Yetkinlikleri |
| bi_employee_certificates | Personel Sertifikaları |
| bi_student_certificates | Öğrenci Sertifikaları |
| bi_theory_events | Teori Dersleri |
| bi_theory_event_participants | Teori Dersi Katılımcıları |
| bi_student_installments | Öğrenci Taksitleri |
Kod Örnekleri
Aşağıda farklı programlama dilleri için API kullanım örnekleri bulunmaktadır.
Python (requests kütüphanesi ile)
import requests
import json
api_key = "SIZE_VERILEN_API_ANAHTARI"
base_url = "https://api.naeron.com:3110/v1"
headers = {
"x-api-key": api_key
}
# Belirli bir tabloyu çekme (örnek: bi_employees)
try:
response = requests.get(f"{base_url}/tables/bi_employees", headers=headers)
response.raise_for_status() # HTTP 200 değilse hata fırlat
data = response.json()
print(json.dumps(data, indent=2, ensure_ascii=False))
except requests.exceptions.RequestException as e:
print(f"Bir hata oluştu: {e}")
JavaScript (Fetch API ile)
const apiKey = 'SIZE_VERILEN_API_ANAHTARI';
const baseUrl = 'https://api.naeron.com:3110/v1';
const headers = new Headers({
'x-api-key': apiKey,
});
async function getTableData(tableName) {
try {
const response = await fetch(`${baseUrl}/tables/${tableName}`, {
method: 'GET',
headers: headers,
});
if (!response.ok) {
throw new Error(`HTTP Hata: ${response.status}`);
}
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Veri çekilirken bir hata oluştu:', error);
}
}
// Örnek kullanım
getTableData('bi_students');
restBI API V2
Versiyon 2 şu anda geliştirme aşamasındadır.
Yeni özellikler ve iyileştirmelerle yakında yayında olacak. Takipte kalın!