API nedir? Yazılımlar arasında bilgi akışı nasıl planlanır?
API kavramını ürün bilgisi aktarımı üzerinden öğrenin; veri kaynağı, aktarım yönü, tekrar eden işlemler ve hata senaryoları için doğru soruları sorun.
Bir müşteri adresini bir ekrandan kopyalayıp başka programa yapıştırmak, günlük işin sıradan parçası hâline gelebilir. İş sayısı arttığında aynı veri farklı yerlerde farklı biçimde tutulur. API, yazılımların belirlenmiş kurallar üzerinden birbirleriyle çalışmasını sağlayan arayüzdür. Ancak iki sistemi bağlayabilmek, hangi bilginin doğru kabul edileceğine kendiliğinden karar vermez. İyi bir entegrasyonun başlangıcı, veri akışının açıkça tarif edilmesidir.
API ne demektir?
API, uygulama programlama arayüzünün kısaltmasıdır. Yazılımın sunduğu belirli yeteneklerin başka kodlar tarafından kullanılmasını sağlar. Tarayıcıların sunduğu API’ler ile başka bir hizmete ağ üzerinden erişmek için kullanılan API’ler aynı örnek değildir; kavram yalnızca dış sistem bağlantılarıyla sınırlı değildir. MDN: Web API’lerine giriş
İşletme görüşmelerinde “API entegrasyonu” denildiğinde çoğunlukla iki ayrı uygulama arasındaki bilgi alışverişi kastedilir. Böyle bir bağlantının kullanılabilmesi için ilgili sistemlerin sunduğu olanaklar, erişim koşulları ve veri yapıları incelenir. Bir programın internete bağlı olması, istenen her verinin dışarı açıldığı anlamına gelmez.
Temsili örnek: sitedeki ürün bilgisi nereden gelecek?
Bir firmanın ürün bilgilerini merkezî bir programda tuttuğunu düşünelim. Web sitesi de bu ürünleri tanıtacak. İlk karar, hangi alanların aktarılacağıdır. Ürün kodu ve adı yeterli mi? Teknik ölçüler, görseller ve yayın durumu da gerekiyor mu? Şirket içindeki her notun herkese açık siteye taşınması istenmeyebilir.
İkinci karar, değişikliğin yönüdür. Merkezî programdan siteye tek yönlü aktarım mı yapılacak, yoksa sitedeki düzenlemeler de geri mi gönderilecek? İki tarafta aynı alanın düzenlenebilmesi, çelişki çözümü gerektirir. Bu karar verilmeden “veriler senkron olsun” demek eksik bir tariftir.
Üçüncü karar, zamanlamadır. Bilgi belirli aralıklarla mı yenilenecek, bir olay olduğunda mı aktarılacak? Burada tek bir doğru hız yoktur. Önce işletmenin kabul edebileceği güncellik ve hata durumunda nasıl çalışacağı belirlenmelidir. Yukarıdaki senaryo bir müşteri projesi anlatımı değil, planlama örneğidir.
Bağlantı kesilirse ne olacak?
Entegrasyon görüşmesinin en değerli kısmı bazen hata senaryosudur. Kaynak sisteme ulaşılamadığında sitedeki son bilgi gösterilmeye devam mı edecek, bazı alanlar mı kapatılacak, yoksa işlem mi duracak? Bu seçeneklerin ziyaretçi ve ekip üzerindeki etkisi farklıdır. Karar, aktarılan verinin niteliğine göre verilir.
Örneğin stok adediyle genel ürün açıklamasının güncellik ihtiyacı aynı olmayabilir. Sistem eski bilgiyi gösteriyorsa bunun sınırları belirlenmelidir. Arka planda başarısız aktarımların sorumlu ekip tarafından görülebilmesi de işletim planının parçasıdır. Yalnızca bağlantının ilk gün çalışması yeterli bir kabul ölçütü değildir.
Aynı işlem iki kez gelirse
Ağ üzerinden yapılan bir isteğin sonucu bazen belirsiz kalabilir. İstek tekrarlandığında aynı işin iki kez oluşmasını önlemek için kullanılan yaklaşımlardan biri idempotent işlem tasarımıdır. AWS’nin EC2 belgeleri, tekrar denenen isteklerde istenmeden birden fazla kaynak oluşması sorununu ve buna karşı uygulanan idempotency davranışını somut bir örnekle açıklar. Her API’nin desteği ve kuralları ayrıca incelenmelidir. AWS: API isteklerinde idempotency
İşletme dilindeki karşılığı şudur: Aynı talep yeniden gönderilirse ikinci kayıt açılacak mı? Bu sorunun cevabı veri aktarımı başlamadan belirlenmelidir. Kaydın hangi kimlikle tanınacağı ve tekrarın nasıl ele alınacağı teknik ekibin açıkça tasarlayacağı konulardır.
Yazılım ekibiyle görüşmeden önce altı soru
Konya yazılım şirketleri ile entegrasyon ihtiyacını konuşacak bir işletme, şu bilgileri hazırlayabilir:
- Verinin ilk ve yetkili kaynağı hangi sistem?
- Hangi alanlar aktarılacak; hangileri kurum içinde kalacak?
- Aktarım hangi yönde ve hangi sıklıkta yapılacak?
- Hatalı veya eksik kayıt nasıl ele alınacak?
- Aynı işlem tekrar geldiğinde beklenen sonuç ne?
- Sorunları kim izleyecek, erişimleri kim yönetecek?
Bu listeyi gerçek bir iş örneğiyle doldurmak, genel teknoloji başlıklarından daha açıklayıcı bir başlangıç sağlar. Konya web yazılım ihtiyaçları kimi zaman küçük bir veri aktarımıyla karşılanabilir, kimi zaman da süreç değişikliği gerektirir. Mevcut sistemlerin yetenekleri görülmeden kesin süre veya otomasyon kapsamı söylenmemelidir. DoktorWeb’in web ve yazılım hizmetleri, bu ihtiyaçları proje kapsamına dönüştürmek için görüşme noktasıdır.
Kısa cevaplar
API varsa bütün işler otomatikleşir mi?
Hayır. API’nin hangi işlemleri desteklediği, erişim koşulları ve işletmenin iş kuralları kapsamı belirler. Bazı adımlarda insan kontrolü veya ayrı bir onay gerekebilir.
Entegrasyon için mevcut programları değiştirmek gerekir mi?
Her zaman gerekmez. Önce mevcut sistemlerin bağlantı olanakları incelenir. Çözüm, desteklenen bir bağlantıdan kontrollü dosya aktarımına kadar farklı biçimlerde olabilir; uygun yöntem ihtiyaç ve sınırlara göre seçilir.
Yazının başına dön ↑