API entegrasyonu nedir? Yönetici için 5 dakikalık anlatım
API, web servisi ve dosya aktarımı farkı, anlık ve toplu aktarım, hata yönetimi ve güvenlik: yöneticinin bilmesi gerekenler.
Bir yazılım ekibi "bunu API ile bağlarız" dediğinde, bir yönetici olarak neyin onaylandığını bilmek istersiniz: Veri ne sıklıkla akacak, bir şey ters giderse ne olacak, sisteme kim erişebilecek? Bu yazı, teknik ayrıntıya girmeden bu soruları değerlendirebilmeniz için gereken kavramları beş dakikada özetliyor.
API ne demek?
API (Application Programming Interface), bir yazılımın diğer yazılımlara açtığı kapıdır. İnsanlar ekranı kullanır, programlar API'yi. E-ticaret siteniz ERP'nize "Bu ürünün stoğu kaç?" diye sorar, ERP de cevabı makinenin okuyabileceği bir biçimde döner. Arada kimse kopyala-yapıştır yapmaz.
API entegrasyonu ise iki ya da daha fazla sistemin bu kapılar üzerinden düzenli olarak veri alışverişi yapmasıdır: siparişin ERP'ye düşmesi, faturanın e-fatura sistemine gitmesi, kargo takip numarasının siparişe geri yazılması gibi.
API, web servisi ve dosya aktarımı arasındaki fark
Sistemleri birbirine bağlamanın tek yolu API değil. Entegrasyon alanının temel kaynaklarından Enterprise Integration Patterns, uygulamaları bağlamanın dört ana yolunu sayar: dosya aktarımı, ortak veritabanı, uzaktan çağrı ve mesajlaşma[1]. Pratikte en sık karşılaşacağınız üçü şunlar:
- Dosya aktarımı: Bir sistem Excel, CSV ya da XML dosyası üretir, diğeri belirli aralıklarla bu dosyayı okur. Kurması kolaydır ama veri dosyanın oluştuğu andaki hâliyle kalır ve hatalı satırlar sessizce atlanabilir.
- Web servisi: Ağ üzerinden çağrılan bir API türüdür. Türkiye'de ERP ve e-belge dünyasında bu ifade çoğunlukla XML tabanlı, daha eski ama yaygın SOAP servisleri için kullanılır. Yerleşik ve kurallı bir yapıdır.
- Modern API (genellikle REST): Web üzerinden, çoğunlukla JSON biçiminde veri alıp veren, daha hafif bir yapı. Pazaryerleri, kargo firmaları ve bulut yazılımlarının büyük kısmı bu yolu sunar.
Kısacası her web servisi bir API'dir, ama her API bir web servisi sayılmaz. Sizin için önemli olan, bağlanacağınız sistemin hangi yolu sunduğudur. Seçim çoğu zaman karşı tarafın imkânlarına göre yapılır.
Anlık mı, toplu mu?
Entegrasyonun ne sıklıkla çalışacağı, teknolojiden çok iş kararıdır.
- Gerçek zamanlı (anlık): Olay olduğu anda veri akar. Stok, sipariş onayı ve fiyat gibi gecikmenin satış kaybına ya da fazla satışa yol açtığı yerlerde gerekir.
- Toplu (batch): Veri belirli aralıklarla, örneğin gece ya da saatte bir, topluca taşınır. Muhasebe kayıtları, gün sonu raporları ve banka hareketlerinin günlük mutabakatı için çoğu zaman yeterlidir ve karşı sisteme daha az yük bindirir.
Her şeyi anlık yapmak cazip görünür, ama maliyeti ve karmaşıklığı artırır. Her veri akışı için "Bu bilgi kaç dakika gecikirse sorun olur?" sorusunu sormak doğru seçimi büyük ölçüde belirler.
Hata olduğunda ne olur?
İyi bir entegrasyonu kötüsünden ayıran şey, her şey yolundayken değil, bir şey bozulduğunda nasıl davrandığıdır. Karşı sistem birkaç dakika yanıt vermeyebilir, internet kesilebilir, bir kayıt eksik alanla gelebilir.
AWS'nin bu konudaki rehberi üç ilkeyi öne çıkarır: Her uzak çağrının bir zaman aşımı olmalı, yeniden denemeler aralarındaki bekleme süresi giderek uzayacak şekilde ve sınırlı sayıda yapılmalı, kayıt oluşturan ya da değiştiren çağrılar ise ancak aynı isteğin iki kez işlenmesini önleyen bir yapı varsa güvenle tekrarlanabilir[2]. Bu son özelliğe teknik dilde "idempotency" denir. Yönetici açısından anlamı açık: Bağlantı koptu diye aynı sipariş ERP'ye iki kez düşmemeli.
Ayrıca hata veren kayıt kaybolmamalı. Bir kuyrukta beklemeli, düzelince işlenmeli ve sorun sürerse ilgili kişiye bildirim gitmeli.
Güvenlik ve yetkilendirme
API, şirket verisine açılan bir kapı olduğu için kapının kime ve ne kadar açıldığı önemlidir. OWASP'nin API güvenliği listesinde ilk iki sırada yetkilendirme ve kimlik doğrulama hataları yer alıyor: Bir kullanıcının, numarasını değiştirerek başkasına ait kayda erişebilmesi ve kimlik doğrulamanın zayıf kurulması[3]. Aynı listede sınırsız kaynak tüketimi de bir risk başlığı. Kontrolsüz çağrılar sistemi yavaşlatabilir ya da ücretli servislerde maliyeti artırabilir[3].
Pratikte her entegrasyonun ayrı bir kullanıcısı ya da anahtarı olmalı ve bu hesap yalnızca ihtiyaç duyduğu verilere erişebilmeli. Anahtarlar kodun içine yazılmamalı, düzenli olarak değiştirilmeli.
Şirketiniz için ne anlama geliyor?
- Yeni bir yazılım seçerken API ya da web servisi sunup sunmadığını ve belgelerinin açık olup olmadığını sorun.
- Her veri akışı için anlık mı toplu mu çalışacağına iş ihtiyacına göre karar verin.
- Ekibinize ya da tedarikçinize "Bağlantı koparsa kayıt ne olur, iki kez işlenebilir mi?" diye sorun.
- Entegrasyon hesaplarına yalnızca gereken yetkiyi verin ve kimin hangi veriye eriştiğini kayıt altına alın.
- Elle yapılan aktarımları listeleyin. En sık tekrarlananı, otomasyon için ilk aday olabilir.
İzlemek isterseniz
- What is a REST API?IBM Technology · yaklaşık 9 dk · İngilizce
ERP'nizi diğer sistemlerinize bağlamak isterseniz entegrasyon hizmetimize göz atın.
Kaynaklar
- Hohpe, G. ve Woolf, B., Enterprise Integration Patterns, "Integration Styles", 2003. enterpriseintegrationpatterns.com
- AWS, "Timeouts, retries and backoff with jitter", Amazon Builders' Library, 5 Aralık 2019. builder.aws.com
- OWASP, "API Security Top 10 2023" (API1 Broken Object Level Authorization, API2 Broken Authentication, API4 Unrestricted Resource Consumption). api-security.owasp.org