API Nedir? Botlar Verilere Nasıl Ulaşır?

API, iki yazılımın birbiriyle konuşmak için kullandığı ortak dildir. Nasıl çalıştığını, scraping ile farkını ve botların veriye neden bu yoldan ulaşmayı tercih ettiğini anlatıyoruz.

Yazı

API kelimesi teknik konuşmaların içinde sürekli geçer ama açıklanması nadiren zahmete değer görülür. Oysa kavramın kendisi hiç karmaşık değildir. API, iki yazılımın birbiriyle konuşabilmesi için önceden anlaşılmış bir konuşma biçimidir. İnsanlar arayüzler üzerinden konuşur; düğmelere basar, formlar doldurur. Yazılımların düğmeye basacak parmağı olmadığı için aralarında başka bir kanal gerekir ve o kanal API dir. Botların veriye nasıl ulaştığını anlamak istiyorsanız başlangıç noktası burasıdır, çünkü bir botun en sağlıklı çalışma biçimi neredeyse her zaman bir API üzerinden geçer. API tam olarak nedir? Bir lokantayı düşünün. Mutfağa girip yemeği kendiniz almazsınız; garsona söylersiniz, garson mutfağa iletir, yemek size gelir. Garson mutfağın nasıl çalıştığını bilmenizi gerektirmez, sadece nelerin sipariş edilebileceğini ve nasıl sipariş verileceğini bilir. API tam olarak bu garsondur. Bir yazılımın dışarıya açtığı, “bana şu biçimde sorarsan sana şu biçimde cevap veririm” anlaşmasıdır. Bu anlaşma yazılıdır: hangi adrese, hangi bilgilerle başvuracağınız ve karşılığında ne alacağınız belgelenmiştir. Bu yazılı olma hali, API yi diğer erişim yollarından ayıran en önemli özelliktir. API nin bir diğer önemli özelliği, kasıtlı olarak açılmış olmasıdır. Bir sitenin API si varsa, o sitenin sahibi verisinin belirli koşullarla dışarıdan kullanılmasına razı olduğunu ilan etmiş demektir. Bu, teknik bir kolaylıktan çok bir izin meselesidir. Scraping yaparken karşı tarafın haberi olmayabilir; API kullandığınızda ise ilişki karşılıklıdır. Genellikle size bir anahtar verilir, bu anahtarla tanınırsınız, kullanım miktarınız kaydedilir ve kurallar önceden bellidir. Bu şeffaflık iki taraf için de iyidir: siz ne yapabileceğinizi bilirsiniz, karşı taraf da sizi tanır. Bir API çağrısı nasıl işler? Bir API kullanımı temelde soru sormak ve cevap almaktan ibarettir. Programınız belirli bir adrese bir istek gönderir; bu isteğin içinde ne istediğinizi anlatan bilgiler ve çoğu zaman kim olduğunuzu gösteren bir anahtar bulunur. Karşı taraftaki sunucu isteği değerlendirir, yetkiniz varsa cevabı hazırlar ve size gönderir. Cevap genellikle insanlar için değil makineler için biçimlendirilmiş, düzenli bir metin olarak gelir; alanlar bellidir, isimlendirme sabittir. İşin güzel tarafı da budur: gelen veriyi ayrıştırmak için tahmin yürütmeniz gerekmez, çünkü biçim baştan bellidir. İstek hazırlanır: hangi bilgi isteniyor, hangi filtrelerle. Kimlik eklenir: çoğu API kişiye özel bir anahtar ister. İstek gönderilir ve sunucu yetkiyi kontrol eder. Sunucu cevabı düzenli bir biçimde hazırlar ve gönderir. Program cevabı okur, kendi tablosuna veya ekranına yerleştirir. Anahtar bir şifredir, kod içinde saklanmaz API anahtarınız sizin kimliğinizdir; onunla yapılan her istek sizin adınıza sayılır. Anahtarı paylaştığınız dosyaların içine yazmayın, ekran görüntüsüyle paylaşmayın ve depoya yüklemeyin. Sızan bir anahtar hem kullanım kotanızı tüketebilir hem de sizin adınıza yapılan işlemlerden sorumlu olmanıza yol açar. API ile scraping arasındaki fark Bu iki yöntem aynı hedefe, yani veriye ulaşmaya çalışır ama yolları temelden farklıdır. Scraping insanlar için hazırlanmış sayfayı okur; API ise makineler için hazırlanmış kanalı kullanır. Bu fark, dayanıklılıkta kendini gösterir. Bir sitenin tasarımı sık sık değişir, ama API si değişirken genellikle önceden duyuru yapılır ve eski sürüm bir süre çalışmaya devam eder. Bu yüzden aynı işi yapan iki kurulumdan API kullananı çok daha az bakım ister. Buna karşılık her sitenin API si yoktur ve olan API ler bazen sayfada görünen her bilgiyi sunmaz. Seçimi belirleyen genellikle bu ikisidir. Ölçüt API Scraping İzin durumu Açıkça verilmiş Genellikle belirsiz Veri biçimi Düzenli ve sabit Sayfadan çıkarılır, değişken Değişime dayanıklılık Yüksek, sürüm duyurulur Düşük, habersiz bozulur Hız ve verimlilik Yüksek, gereksiz yük yok Düşük, tüm sayfa indirilir Her zaman var mı? Hayır, her sitede bulunmaz Sayfa varsa denenebilir API varken scraping yapmak, açık kapı dururken pencereden geçmeye benzer. Daha zahmetli, daha kırılgan ve ev sahibinin hoşuna gitmeyen bir yol. Botlar API yi nasıl kullanır? Bir otomasyon kurulumunda API genellikle iki yönde çalışır. Birinci yön okumadır: bot düzenli aralıklarla API ye sorar, güncel veriyi alır ve kendi kurallarıyla karşılaştırır. İkinci yön yazmadır: bot bir sonuca vardığında yine API üzerinden bir kayıt oluşturur, bir mesaj gönderir ya da bir durumu günceller. Pratikte kullanıcıların çoğu yalnızca birinci yönü kullanır ve bu genellikle yeterlidir. Yazma yönü devreye girdiğinde sorumluluk da artar, çünkü artık bot yalnızca bakmakla kalmaz, karşı tarafta gerçek bir değişiklik yaratır. Kota: çoğu API belirli bir süre içinde kaç istek yapabileceğinizi sınırlar. Sürüm: API ler sürümlenir; eski sürüm bir gün kapanabilir, duyuruları takip edin. Hata kodları: cevap gelmediğinde neden gelmediğini anlatan standart kodlar vardır. Sayfalama: büyük veri tek seferde gelmez, parçalar halinde istenir. Yetki kapsamı: anahtarınız genellikle yalnızca belirli işlemlere izin verir. Kota konusu yeni başlayanların en sık takıldığı noktadır. Bir API size saatte belirli sayıda istek hakkı tanır ve bu sınırı aştığınızda geçici olarak cevap alamazsınız. Çözüm daha hızlı denemek değil, daha az istemektir: gerçekten ihtiyacınız olan tazelikten daha sık sormayın ve aldığınız cevabı bir süre saklayıp tekrar tekrar sormaktan kaçının. Bu ikinci alışkanlık, yani gelen veriyi kısa süreliğine hafızada tutmak, hem kota sorununu hem de gereksiz beklemeyi büyük ölçüde ortadan kaldırır. İyi kurulmuş bir bot, gerektiğinden fazla soru sormaz. API kullanmaya başlarken İlk adım, ilgilendiğiniz servisin bir API sunup sunmadığını araştırmaktır. Çoğu platformun geliştirici ya da entegrasyon başlıklı bir bölümü vardır ve pek çok kullanıcı bunun farkında değildir. İkinci adım belgeleri okumaktır; sıkıcı görünse de çoğu API belgesi örnek isteklerle birlikte gelir ve bir örneği kopyalayıp denemek kavramı anlamanın en hızlı yoludur. Üçüncü adım küçük başlamaktır: tek bir kayıt çekin, geldiğini görün, sonra genişletin. Bu kademeli yol, doğrudan büyük bir kurulumla başlayıp nerede hata yaptığınızı bulamamaktan çok daha hızlı sonuç verir. Son olarak beklentiyi doğru kurmak gerekir. API, veriyi düzenli ve izinli biçimde almanızı sağlar ama verinin ne anlama geldiğini size söylemez. Gelen alanların hangi durumda hangi değeri aldığını yine sizin öğrenmeniz gerekir ve bu genellikle belgelerde değil, deneyerek anlaşılır. Ayrıca bir API nin varlığı, o verinin sınırsız kullanılabileceği anlamına gelmez; kullanım şartları ve kişisel veri yükümlülükleri burada da geçerlidir. API kullanmak erişimi meşrulaştırır, ama veriyle ne yaptığınızın sorumluluğunu ortadan kaldırmaz.

Sık sorulan sorular

API kullanmak için programlama bilmek şart mı?

Sıfırdan bir entegrasyon yazacaksanız temel düzeyde gerekir. Ancak hazır otomasyon araçlarının birçoğu popüler servislerin API lerine kendi içinde bağlanır ve sizden yalnızca anahtarı girip ayarları seçmenizi ister. Bu durumda API nin nasıl çalıştığını kavramsal olarak bilmek, sorun çıktığında ne olduğunu anlamanız için yeterlidir.

Her sitenin API si var mı?

Hayır. API sunmak karşı taraf için ek bir iş ve maliyet demektir, bu yüzden genellikle büyük platformlarda ve iş ortaklığı olan servislerde bulunur. Küçük siteler çoğunlukla sunmaz. Ayrıca API si olan platformların bir kısmı erişimi başvuruya bağlar ya da yalnızca belirli hesap türlerine açar. Bu yüzden kurulum öncesinde araştırmak gerekir.

API ücretli mi?

Değişir. Pek çok servis belirli bir kullanım miktarına kadar ücretsiz erişim sunar ve üstünde ücretlendirir. Bazıları tamamen ücretsizdir, bazıları ise baştan ücretlidir. Küçük ölçekli bir takip kurulumu genellikle ücretsiz katmanların içinde kalır. Maliyeti belirleyen şey çoğu zaman veri miktarı değil, ne sıklıkla istek yaptığınızdır.

API anahtarım sızarsa ne yapmalıyım?

Vakit kaybetmeden anahtarı iptal edip yenisini oluşturun; hemen hemen bütün servisler bu işlemi panelden yapmanıza izin verir. Ardından kullanım kayıtlarına bakıp sizin yapmadığınız bir işlem olup olmadığını kontrol edin. Yeni anahtarı kod dosyalarının içine değil, ayrı bir ayar dosyasında ya da ortam değişkeninde tutmak tekrar yaşanmasını önler.

API ile aldığım veriyi istediğim gibi kullanabilir miyim?

Erişimin izinli olması, kullanımın sınırsız olduğu anlamına gelmez. Çoğu API nin kullanım şartlarında verinin nasıl saklanabileceği, ne kadar süre tutulabileceği ve yeniden yayımlanıp yayımlanamayacağı yazar. Ayrıca gelen veri kişisel bilgi içeriyorsa KVKK yükümlülükleri erişim yönteminden bağımsız olarak geçerlidir. Kısacası kapı açıktır ama kuralları vardır.