Tüm blog yazıları

API Nedir?

Uygulamaların birbiriyle nasıl konuştuğunu merak mı ediyorsunuz? Cevap: API'ler! Bu rehberde Application Programming Interface (API) nedir, garson benzetmesiyle nasıl çalışır, Web API'leri ve endpoint kavramı açıklanıyor. Yazılımdaki önemini keşfedin.

eminbasbayan6 dk okuma
Müşteri (uygulama), garson (API) ve mutfak (sunucu) arasındaki iletişimi gösteren bir görsel.

AJAX ile sayfa yenilenmeden istek yapabildiğimizi öğrendik. Peki bu istekleri nereye yapıyoruz? Cevap: API'lere.

API terimi her yerde karşınıza çıkacak. İş ilanlarında, teknik dokümanlarda, geliştirici sohbetlerinde... Bu makalede API'nin ne olduğunu, nasıl çalıştığını ve neden bu kadar önemli olduğunu öğreneceksiniz.

API Ne Demek?

API, "Application Programming Interface" ifadesinin kısaltmasıdır. Türkçesiyle "Uygulama Programlama Arayüzü".

Tanım biraz soyut kaldı, değil mi? Bir benzetmeyle açıklayalım.

Garson Benzetmesi

Bir restorana gittiğinizi düşünün:

  • Siz müşterisiniz (uygulama/kullanıcı)
  • Mutfak yemeklerin hazırlandığı yerdir (sunucu/veritabanı)
  • Garson siparişinizi alan ve yemeğinizi getiren kişidir (API)

Siz doğrudan mutfağa girip yemek yapamazsınız. Bunun yerine:

  1. Garsona ne istediğinizi söylersiniz
  2. Garson siparişi mutfağa iletir
  3. Mutfak yemeği hazırlar
  4. Garson yemeği size getirir

API de tam olarak bu işi yapar. Sizin (uygulamanızın) doğrudan veritabanına erişmenize izin vermez. Bunun yerine belirli kurallar çerçevesinde veri alıp vermenizi sağlar.

Web API'leri

Genel olarak API terimi çok geniş bir anlam taşır. Ancak web geliştiricileri "API" dediğinde genellikle Web API'lerini kasteder.

Web API'leri HTTP protokolü üzerinden çalışır. Yani:

  • Belirli bir URL'e istek gönderirsiniz
  • Karşılığında veri alırsınız (genellikle JSON formatında)

Örnek: Döviz Kuru API'si

Diyelim ki bir uygulama yapıyorsunuz ve güncel dolar kurunu göstermek istiyorsunuz. İki seçeneğiniz var:

Seçenek 1: Manuel Güncelleme Her gün kendiniz bakıp kodu güncellersiniz. Pratik değil, hatta imkansız.

Seçenek 2: API Kullanmak Bir döviz API'sine istek atarsınız, güncel kuru alırsınız. Otomatik, anlık, güvenilir.

metin
İstek: https://api.doviz.com/kurlar/usd
Yanıt: { "birim": "USD", "alis": 32.45, "satis": 32.55 }

İşte bu kadar basit. Bir URL'e istek yaptınız, veri aldınız.

Endpoint Kavramı

Endpoint, bir API'nin belirli bir işlevi yerine getiren URL'sidir. Her endpoint farklı bir veri veya işlem sunar.

Örnek: Kitap API'si

Bir kitap veritabanı API'si düşünelim:

EndpointNe Döndürür
/kitaplarTüm kitapların listesi
/kitaplar/4242 numaralı kitabın detayları
/yazarlarTüm yazarların listesi
/yazarlar/7/kitaplari7 numaralı yazarın kitapları
/kategoriler/romanRoman kategorisindeki kitaplar

Her endpoint bir kapı gibi. Hangi kapıyı çalarsanız, o kapının arkasındaki veriyi alırsınız.

API'ler Ne İşe Yarar?

1. Veri Almak (En Yaygın Kullanım)

Çoğu API, veri sağlamak için kullanılır:

  • Hava durumu API'si: Şehir ver, hava durumu al
  • Film API'si: Film adı ver, film bilgilerini al
  • Harita API'si: Koordinat ver, adres al
  • Haber API'si: Kategori ver, haberleri al

2. İşlem Yaptırmak

Bazı API'ler sadece veri vermez, sizin adınıza işlem de yapar:

  • SMS API'si: Telefon numarası ve mesaj ver, SMS göndersin
  • E-posta API'si: Alıcı ve içerik ver, mail atsın
  • Ödeme API'si: Kart bilgileri ver, ödeme alsın
  • Sosyal Medya API'si: İçerik ver, paylaşım yapsın

3. Kimlik Doğrulama

"Google ile Giriş Yap" veya "Facebook ile Devam Et" butonlarını görmüşsünüzdür. Bunlar da API üzerinden çalışır:

  • Kullanıcı butona tıklar
  • Google/Facebook API'sine istek gider
  • Kullanıcı onay verir
  • API, kullanıcı bilgilerini döndürür
  • Siz bu bilgilerle kullanıcıyı sisteminize kaydedersiniz

Popüler API Örnekleri

Ücretsiz ve Eğlenceli API'ler

APIAçıklamaÖrnek Kullanım
JSONPlaceholderSahte veriTest ve öğrenme
OpenWeatherMapHava durumuHava durumu uygulaması
OMDBFilm veritabanıFilm arama sitesi
NewsAPIHaberlerHaber agregasyonu
PokéAPIPokemon verileriPokemon ansiklopedisi
REST CountriesÜlke bilgileriÜlke bilgi kartları

Büyük Şirketlerin API'leri

ŞirketAPI'nin Yaptığı
Google MapsHarita, konum, rota hesaplama
Twitter/XTweet okuma, yazma, arama
SpotifyŞarkı bilgileri, çalma listeleri
GitHubRepo bilgileri, commit geçmişi
YouTubeVideo bilgileri, arama
StripeÖdeme işlemleri

API Dokümantasyonu

Her API'nin bir dokümantasyonu vardır. Bu dokümantasyon size şunları söyler:

  1. Hangi endpoint'ler mevcut?
  2. Her endpoint'e nasıl istek yapılır?
  3. Hangi parametreler gerekli?
  4. Yanıt formatı nasıl?
  5. Hata durumlarında ne döner?

Örnek Dokümantasyon

metin
Endpoint: GET /api/urunler

Açıklama: Tüm ürünleri listeler

Parametreler:
  - kategori (opsiyonel): Filtreleme için kategori adı
  - limit (opsiyonel): Maksimum sonuç sayısı (varsayılan: 20)
  - siralama (opsiyonel): "fiyat_artan" veya "fiyat_azalan"

Örnek İstek:
  GET /api/urunler?kategori=elektronik&limit=10

Örnek Yanıt:
  {
    "toplam": 156,
    "sayfa": 1,
    "urunler": [
      { "id": 1, "ad": "Laptop", "fiyat": 15000 },
      { "id": 2, "ad": "Telefon", "fiyat": 8000 }
    ]
  }

API kullanmadan önce mutlaka dokümantasyonu okuyun. Her API farklıdır, varsayımda bulunmayın.

API Anahtarı (API Key)

Çoğu API, sizi tanımak için bir API anahtarı ister. Bu anahtarı kullanmanızın birkaç nedeni var:

  1. Kimlik belirleme: Kim istek yapıyor?
  2. Kullanım takibi: Ne kadar istek yaptınız?
  3. Kota uygulama: Ücretsiz planda günde 100 istek gibi
  4. Güvenlik: Kötüye kullanımı önleme

API Anahtarı Nasıl Kullanılır?

Genellikle üç yöntemden biri kullanılır:

1. URL'de Query String olarak:

metin
https://api.ornek.com/veriler?api_key=abc123xyz

2. Header olarak:

metin
Authorization: Bearer abc123xyz

3. İstek gövdesinde:

json
{
  "api_key": "abc123xyz",
  "veri": "..."
}

Hangi yöntemin kullanılacağı dokümantasyonda belirtilir.

Ücretli vs Ücretsiz API'ler

Ücretsiz API'ler

  • Genellikle sınırlı kullanım hakkı (günde 100 istek gibi)
  • Temel özellikler
  • Hobi projeleri için ideal

Ücretli API'ler

  • Sınırsız veya yüksek limitli kullanım
  • Gelişmiş özellikler
  • Daha hızlı yanıt süreleri
  • Teknik destek
  • Ticari projeler için gerekli

Freemium Model

Çoğu API "freemium" model kullanır:

  • Ücretsiz katman: Sınırlı ama başlangıç için yeterli
  • Ücretli katmanlar: Artan limitler ve özellikler

API ile Web Sitesi Farkı

Aynı URL'e istek yaptığınızda farklı sonuçlar alabilirsiniz:

Web Sitesi Yanıtı (İnsanlar İçin)

metin
https://haberler.com/gundem

Sonuç: HTML, CSS, JavaScript içeren tam sayfa. Renkler, düzen, menüler, reklamlar...

API Yanıtı (Kodlar İçin)

metin
https://api.haberler.com/gundem

Sonuç: Sadece haber verileri içeren JSON. Başlıklar, özetler, tarihler...

Anahtar fark:

  • Web sitesi insanların görmesi için tasarlanmış
  • API uygulamaların kullanması için tasarlanmış

Özet

KavramAçıklama
APIUygulamaların birbiriyle iletişim kurmasını sağlayan arayüz
Web APIHTTP üzerinden çalışan API
EndpointAPI'nin belirli bir işlevi yerine getiren URL'si
API KeyKimlik doğrulama için kullanılan özel anahtar
DokümantasyonAPI'nin nasıl kullanılacağını anlatan kılavuz

Sırada Ne Var?

API'lerin ne olduğunu ve ne işe yaradığını öğrendik. Peki bu API'ler bize veriyi hangi formatta gönderiyor?

Bir sonraki makalede JSON formatını derinlemesine inceleyeceğiz.

JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele