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

Endpoint'ler

API, verileri çekmek için üç ana endpoint sunar.

GET /v1/tableNames
GET /v1/tables
GET /v1/tables/{tableName}
GET /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",
    // ...
  ]
}
GET /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
  }
}
GET /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_labelsKurumsal Etiketler
bi_studentsÖğrenci Bilgileri
bi_student_labelsÖğrenci Etiketleri
bi_employeesPersonel Bilgileri
bi_work_typesPersonel Çalışma Tipleri
bi_facilitiesTesisler (Havalimanları vb.)
bi_aircrafts_simulatorsUçak ve Simülatörler
bi_basesÜs Bilgileri
bi_routesUçuş Rotaları
bi_observer_positionsGözlemci Pozisyonları
bi_flights_duty_connectorUçuş ve Görev Bağlantıları
bi_flightsUçuş Kayıtları
bi_ukaUçuşa Katılamama Kayıtları
bi_budgetsUçuş Bütçeleri
bi_fleetsFilo Bilgileri
bi_groupsEğitim Grupları
bi_trainingsEğitimler
bi_training_revisionsEğitim Revizyonları
bi_training_phasesEğitim Fazları
bi_training_master_lessonsAna Dersler
bi_training_phase_lessonsFaz Dersleri
bi_student_trainingsÖğrenci Eğitimleri
bi_student_training_lessonsÖğrenci Dersleri
bi_student_contractsÖğrenci Sözleşmeleri
bi_currenciesPara Birimleri
bi_bank_accountsBanka Hesapları
bi_student_paymentsÖğrenci Ödemeleri
bi_person_activitiesPersonel Aktiviteleri
bi_employee_competencesPersonel Yetkinlikleri
bi_employee_certificatesPersonel Sertifikaları
bi_student_certificatesÖğrenci Sertifikaları
bi_theory_eventsTeori Dersleri
bi_theory_event_participantsTeori 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!