API
API NEDİR
API, iki yazılımın birbirinden bağımsız
olarak ama belirli kurallar
çerçevesinde iletişim kurmasını sağlar.
⚙️ API NASIL ÇALIŞIR?
• API’ler genellikle şu şekilde işler:
1.İstek Gönderilir:
– Web tarayıcısı, mobil uygulama veya başka bir sistemden gelen istek.
[Link] İşlenir:
– API, bu isteği işleyip veritabanına veya ilgili servise yönlendirir.
[Link]ıt Gönderilir:
– İstenen veri JSON veya XML formatında döner.
🎯 ÖZETLE API NEDİR?
• API, yazılımların birbiriyle iletişim
kurmasını sağlayan bir köprüdür.
• Garson gibi çalışır: İstek alır, işlem yapar
ve yanıt döner.
• Hemen hemen her uygulama (mobil, web)
bir API kullanır.
JSON VS XML
Özellik JSON XML
Yapı Anahtar - Değer (Key-Value) Etiket (Tag) Tabanlı
Okunabilirlik Daha sade ve kolay okunur Daha karmaşık ve uzundur
Dosya Boyutu Daha küçük ve hafif Daha büyük ve ağır
Hız Daha hızlı işlenir Daha yavaş işlenir
Veri Tipleri Sayı, metin, dizi, boolean Genellikle metin
Yorum Desteği Yok Var (<!-- yorum -->)
Modern web ve mobil
Kullanım Alanı Eski sistemler, bankacılık
uygulamalar
API TÜRLERİNE GENEL BAKIŞ
API Türü Avantajlı Olduğu Durumlar
REST API Basit ve yaygın çözümler için (web/mobil uygulamalar)
GraphQL API Esnek ve ilişkisel veri yönetimi gereken projeler
SOAP API Yüksek güvenlik ve standartlaşmış kurumsal projeler
WebSocket Gerçek zamanlı veri aktarımı (sohbet, oyun)
gRPC Performans ve mikroservis mimarileri
REST API
• İstemci-Sunucu Mimarisi (Client-Server):
• İstemci (Client): İstek gönderen taraf (web tarayıcısı, mobil
uygulama).
• Sunucu (Server): İstekleri işleyip yanıt dönen taraf
(veritabanı, API sunucusu).
• İkisi birbirinden bağımsız çalışır.
• Durumsuzluk (Stateless):
• Her istek birbirinden bağımsızdır.
• Sunucu, istemcinin önceki isteklerini hatırlamaz.
• Bu sayede daha hızlı ve ölçeklenebilir olur.
• Kaynak Tabanlı (Resource-Based):
• REST API’de her şey bir kaynak (resource) olarak temsil
edilir.
• Kaynaklar, genellikle bir URL (bağlantı) ile erişilir.
R E S T AP I
M E T OD L AR I
Metot Açıklama Örnek
• HTTP Metotlarını
Veri çekmek için GET /urunler → Tüm
Kullanır: GET
kullanılır ürünleri getirir
• REST API, HTTP
protokolünü kullanır. POST /urunler → Yeni
POST Yeni veri eklemek için
ürün ekler
• REST API’de veri
genellikle JSON formatında
Var olan veriyi PUT /urunler/5 → ID'si
gönderilir ve alınır. PUT
güncellemek için 5 olan ürünü günceller
• JSON, daha sade ve hızlı
olduğu için tercih edilir. DELETE /urunler/5 →
DELETE Veri silmek için
ID'si 5 olan ürünü siler
⚖️ R E S T A P I ’ N İ N AVA N TA J L A R I 🚫 R E S T A P I ’ N İ N D E Z AVA N TA J L A R I
✅ Basit ve Anlaşılır: HTTP ❗ Veri Fazlalığı: Her GET isteği
protokolü sayesinde herkesin tüm veriyi döner, özelleştirme
kolayca kullanabileceği bir yapıya sınırlıdır.
sahiptir. ❗ Cache Yönetimi
✅ Hızlı ve Hafif: JSON formatı Karmaşık: Özellikle dinamik
sayesinde daha az veri taşınır. verilerde önbellekleme zor olabilir.
✅ Esnek: Farklı platformlarla kolay ❗ İlişkisel Verilerde Yetersiz: Çok
entegre olur (web, mobil, IoT). bağlantılı verilerde yönetim
✅ Ölçeklenebilir: Durumsuz karmaşıklaşabilir. (GraphQL burada
(stateless) yapısı sayesinde daha daha iyidir.)
büyük sistemlerde kolayca
ölçeklenir.
SOAP API
• Protokol Tabanlıdır:
SOAP, bir protokoldür (REST bir mimaridir).
Veri alışverişini kesin kurallar çerçevesinde yapar.
• XML Tabanlıdır:
Tüm veri iletimi XML formatında gerçekleşir.
Veri, kurallı ve katı bir şekilde yapılandırılır.
• HTTP ve Daha Fazlasını Kullanır:
Genellikle HTTP veya HTTPS kullanır.
Ayrıca SMTP, TCP, FTP gibi protokollerle de çalışabilir.
• Güvenlik:
REST API’lerden daha güvenlidir.
• Durum Bağımlı (Stateful) veya Durumsuz (Stateless):
SOAP, hem durum bağımlı hem de durumsuz çalışabilir.
Bu esneklik, karmaşık işlemler için uygundur.
🚨 SOAP API’NİN
DEZAVANTAJLARI
• ❗ Karmaşık ve Ağırdır: XML formatı ve katı kurallar işleri yavaşlatır.
❗ Veri Fazlalığı: Aynı verinin daha fazla yer kaplaması.
❗ Daha Yavaş: REST API’ye göre daha fazla veri taşır.
❗ Öğrenmesi Zor: Yapısı REST API’ye göre daha karmaşıktır.
🚀 SOAP METOTLARI
• SOAP API'de standart metotlar yoktur.
• İşlemler, duruma göre ve ihtiyaca özel olarak yazılır.
• Metot isimleri genellikle uygulamanın işlevine göre belirlenir.
• SOAP’ta istenilen sayıda ve isimde özelleştirilmiş metotlar yazılabilir.
• REST’te işlemler için sınırlı HTTP metotları vardır, ama SOAP'ta metot
isimleri ve işlevleri tamamen özgürdür.
• Bu nedenle:
• REST → Daha basit ve standart.
• SOAP → Daha detaylı ve özelleştirilebilir.
🚀 GRAPHQL API NEDİR?
• REST API'nin aksine, veri çekmek için birçok farklı endpoint kullanmak
yerine, tek bir endpoint üzerinden esnek ve özelleştirilmiş sorgular yapılır.
• 🔎 Özet Tanım:
• İstemci, neye ihtiyacı varsa sadece onu çeker.
• Tek endpoint üzerinden veri alınır veya gönderilir.
• Veri ilişkileri daha kolay yönetilir.
📌 1. Query (Veri Çekme)
Amaç: Veri okuma işlemi yapmak.
📌 2. Mutation (Veri Ekleme,
NO Güncelleme, Silme) Amaç: Veri
METHODS üzerinde değişiklik yapmak (ekleme,
silme, güncelleme).
📌 3. Subscription (Gerçek
Zamanlı Veri Takibi)
Amaç: Gerçek zamanlı olarak veri
değişikliklerini takip etmek.
WEBSOCKET API
• WebSocket, istemci (client) ile sunucu (server) arasında gerçek
zamanlı, çift yönlü ve sürekli bir bağlantı kurmayı sağlayan bir iletişim
protokolüdür.
WebSocket API, bu protokolü kullanarak uygulamalarda anlık veri
alışverişi yapmanı sağlar.
• 🔑 Özet Tanım:
• İstemci ve sunucu arasında sürekli açık bir bağlantı oluşturur.
• Çift yönlü iletişim (bidirectional) sayesinde, istemci ve sunucu aynı anda
veri gönderebilir.
• Gerçek zamanlı uygulamalar için idealdir (sohbet uygulamaları, canlı skor,
online oyunlar).
🔑 WEBSOCKET API’NİN
TEMEL ÖZELLİKLERİ
• Çift Yönlü İletişim: Hem istemci hem de sunucu aynı anda veri
gönderebilir.
• Düşük Gecikme: Gerçek zamanlı iletişim için idealdir.
• Sürekli Bağlantı: Tek bir bağlantı üzerinden sürekli veri alışverişi yapılır.
• Gerçek Zamanlı Uygulamalar: Anlık bildirimler, canlı sohbetler, oyunlar
için mükemmel bir seçimdir.
🎯 GRPC’NİN TEMEL
ÖZELLİKLERİ
[Link] (Protocol Buffers):
gRPC, veri taşımak için Protocol Buffers (Protobuf) adlı bir seri hale
getirme (serialization) formatını kullanır.
– Protobuf, JSON veya XML’den daha hızlı ve daha az yer kaplar.
– gRPC, Protobuf sayesinde hızlı ve verimli çalışır.
2.Çok Dilli Destek:
gRPC, Python, Java, Go, C++, Ruby gibi birçok programlama dilini destekler.
3.Çift Yönlü İletişim:
gRPC, istemci ve sunucu arasında hem tek yönlü hem de çift yönlü veri
akışı sağlar.
[Link]/2 Üzerinde Çalışır:
1. Paralel istekler yapabilir.
2. Daha düşük gecikme süreleri sunar.
3. Veri sıkıştırma ile bant genişliğini optimize eder.
🚀 API NEDEN VARDIR?
• 🔗 1. Sistemler Arasında Bağlantı Kurar
• API'ler, farklı yazılım ve sistemlerin birbirleriyle iletişim kurmasını sağlar.
Mobil uygulamalar, 🌐 web siteleri, 🖥️masaüstü programları gibi
yazılımlar API'ler sayesinde veri paylaşır.
• ⏳ 2. Zaman ve Kaynak Tasarrufu Sağlar
• Her şeyi sıfırdan geliştirmek yerine, hazır API'ler kullanarak zamandan ve maliyetten
tasarruf edilir.
💡 Örneğin, bir uygulamaya harita eklemek için Google Maps API'sini kullanırsın, harita
kodunu baştan yazmazsın.
• ⚙️3. Otomasyon ve Verimlilik Sağlar
• İş süreçlerini otomatikleştirir.
🏦 Bankalarda otomatik ödeme işlemleri, 📦 e-ticarette stok kontrolü gibi süreçler API ile
yönetilir.
• 🌐 4. Esneklik ve Entegrasyon Kolaylığı Sunar
• Bir yazılım, başka bir yazılımla kolayca entegre olabilir.
Örneğin, bir e-ticaret sitesi, ödeme almak için PayPal API veya Stripe API kullanır.
🔍 API OLMASAYDI NE
OLURDU?
• ❌ 1. Yazılımlar Arasında İletişim Zorlaşırdı
• Her yazılım bağımsız olurdu ve veri paylaşımı neredeyse imkânsız olurdu.
• Örneğin, hava durumu uygulamaları, haber siteleri gibi uygulamalar gerçek
zamanlı veri çekemezdi.
• ❌ 2. Geliştirme Süreci Yavaşlar ve Maliyet Artardı
• Her işlev için sıfırdan kod yazmak gerekirdi.
• Küçük şirketler büyük servislerle entegre olamazdı.
• ❌ 3. Otomasyon Olmazdı, Her Şey Elle Yapılırdı
• E-ticaret sitelerinde siparişler elle işlenirdi.
• Banka transferleri manuel yapılırdı.
• ❌ 4. Dijital Ekosistemler Zayıf Kalırdı
• Instagram’da bir paylaşımı başka bir platformda otomatik olarak göremezdik.
• Uygulamalar ve servisler arasında ekosistem oluşmazdı.
🎯 API’LER OLMAZSA
OLMAZ MIYDI?
• 🔎 Kesinlikle evet! Özellikle günümüzün dijital dünyasında API’ler:
• Hız ve verimlilik sağlar.
• Veri paylaşımı ve iş süreçlerini kolaylaştırır.
• Güvenli, ölçeklenebilir ve esnek çözümler sunar.
• Özellikle bulut bilişim, mobil uygulamalar, e-ticaret, finansal
teknolojiler gibi alanlar API’ler olmadan gelişemezdi.