Bogahost Blog | Güncel Hosting, Sunucu ve Yazılım Rehberi
Müşteri Paneli
Blog

API Nedir? REST API Mantığı ve Kullanım Alanları

Bir uygulamanın hava durumunu göstermesi, ödeme alması ya da harita üzerinde konum işaretlemesi neredeyse hiçbir zaman o uygulamanın kendi başına yaptığı bir iş değildir. Arka planda başka bir servisle konuşur ve bu konuşmanın dili API'dir. Yazılım dünyasının birbirine bağlanma biçimini anlamak için önce bu arayüzün ne işe yaradığını kavramak gerekir.

API Nedir?

API, açılımıyla Application Programming Interface yani Uygulama Programlama Arayüzü, iki yazılım bileşeninin belirli kurallar çerçevesinde veri alışverişi yapmasını sağlayan bir sözleşmedir. Bir tarafta isteği gönderen istemci, diğer tarafta bu isteği işleyip yanıt üreten sunucu bulunur. Aradaki API ise hangi adrese, nasıl bir formatta ve hangi parametrelerle başvurulacağını tanımlar.

Karşı tarafın kodunu görmeden, veritabanı yapısını bilmeden yalnızca bu arayüzü kullanarak iş yaparsınız. Bu soyutlama sayesinde bir ödeme sağlayıcısı altyapısını tamamen değiştirse bile, sizin entegrasyonunuz API sözleşmesi korunduğu sürece çalışmaya devam eder.

REST Mimarisinin Temel Mantığı

REST, Representational State Transfer kelimelerinin kısaltmasıdır ve aslında bir protokol değil, bir mimari yaklaşımdır. Roy Fielding tarafından 2000 yılında doktora tezinde tanımlanan bu yaklaşım, web'in zaten var olan altyapısını, yani HTTP'yi olabildiğince doğal biçimde kullanmayı önerir.

REST yaklaşımının üzerinde durduğu birkaç ilke vardır:

HTTP Metotları ve CRUD Eşleşmesi

REST API'lerde bir kaynak üzerinde yapılacak işlem, isteğin HTTP metoduyla belirlenir. Bu metotlar veritabanı dünyasındaki temel işlemlerle, yani CRUD ile büyük ölçüde örtüşür.

HTTP MetoduCRUD KarşılığıÖrnek Uç NoktaAçıklama
GETReadGET /urunler/15Var olan kaydı getirir, sunucuyu değiştirmez
POSTCreatePOST /urunlerYeni kayıt oluşturur
PUTUpdatePUT /urunler/15Kaydın tamamını günceller
PATCHUpdatePATCH /urunler/15Kaydın yalnızca belirli alanlarını günceller
DELETEDeleteDELETE /urunler/15Kaydı siler

GET ve DELETE gibi metotların idempotent olması, yani aynı isteği birden çok kez göndermenin sonucu değiştirmemesi, REST'in güvenilirliğini artıran detaylardandır.

Bir REST İsteği Pratikte Nasıl Görünür?

Komut satırından curl ile basit bir istek göndermek, API mantığını anlamanın en doğrudan yoludur. Aşağıdaki örnekte bir API'ye yeni bir kullanıcı kaydı gönderiyoruz:

curl -X POST https://api.ornek.com/v1/kullanicilar \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" \
  -d '{
        "ad": "Mehmet",
        "eposta": "mehmet@ornek.com",
        "rol": "editor"
      }'

Burada -X POST metodu, -H ile gönderilen başlıklar ve -d ile taşınan JSON gövdesi yer alıyor. Sunucu işlemi başarıyla tamamlarsa genellikle 201 Created durum koduyla, oluşturulan kaynağın temsilini içeren bir yanıt döner.

HTTP Durum Kodları Neden Önemli?

Bir REST API'nin kalitesi, doğru durum kodlarını döndürmesiyle yakından ilişkilidir. İstemci, yanıtın gövdesini okumadan önce durum koduna bakarak işlemin sonucunu anlayabilmelidir.

Kimlik Doğrulama ve Güvenlik

Halka açık bir uç noktayı herkesin sınırsızca çağırmasını istemezsiniz. REST API'lerde en yaygın korunma yöntemleri arasında API anahtarları, OAuth 2.0 akışları ve JWT tabanlı erişim jetonları bulunur. Bunlara ek olarak istek sayısını sınırlayan rate limiting uygulamak, kötüye kullanımı ve ani yük artışlarını engellemek açısından kritiktir.

Trafiğin tamamının TLS ile, yani https üzerinden taşınması artık bir tercih değil zorunluluktur. Jetonların URL içinde değil Authorization başlığında taşınması da, bu değerlerin sunucu loglarına ya da tarayıcı geçmişine düşmesini engeller.

Bogahost Önerisi: API trafiğiniz büyüdükçe darboğaz çoğu zaman uygulama kodunda değil, sunucunun kaynaklarında ortaya çıkar. Üzerinde kök erişiminize sahip olduğunuz bir sanal sunucu üzerinde kendi API ortamınızı kurarak Nginx önbellekleme ve PHP-FPM ayarlarını yük profilinize göre özgürce yapılandırabilirsiniz.

API'nin Gerçek Kullanım Alanları

API'ler bugün dijital servislerin görünmez tutkalı durumunda. Sıkça karşılaşılan senaryolardan birkaçı şöyle sıralanabilir:

Düşük ve orta trafikli projelerde bu API'leri barındırmak için iyi yapılandırılmış bir web hosting paketi üzerinde uygulamanızı yayınlamak çoğu durumda fazlasıyla yeterli olur; ölçek arttıkça izole bir sunucuya geçiş mantıklı hale gelir.

REST ve Diğer Yaklaşımlar

REST tek seçenek değildir. İhtiyaç duyulan veri yapısının esnekliği, performans hedefleri ve ekibin alışkanlıkları alternatif yaklaşımları gündeme getirebilir. Aşağıdaki tablo öne çıkan farkları özetliyor.

ÖzellikRESTGraphQLgRPC
Veri formatıGenellikle JSONJSONProtocol Buffers
TaşımaHTTP/1.1, HTTP/2HTTPHTTP/2
Veri çekmeSabit uç noktalarİstemci alanları seçerTanımlı servis metotları
Tipik kullanımGenel amaçlı web APIKarmaşık, iç içe veriServisler arası iletişim

Özetle

API, yazılımların ortak bir dilde anlaşmasını sağlayan sözleşmedir; REST ise bu sözleşmeyi web'in kendi araçlarıyla, yani URL'ler ve HTTP metotlarıyla kurmanın sade ve yaygın bir yoludur. Kaynak odaklı düşünmek, doğru metot ve durum kodlarını kullanmak ve güvenliği ihmal etmemek sağlam bir entegrasyonun temelini oluşturur. Bu mantığı bir kez kavradığınızda, karşınıza çıkan hemen her servisin dokümantasyonunu çok daha hızlı okur hale gelirsiniz.

Web Siteniz Hızlansın!

Blogumuzu beğendiniz mi? Web siteniz için yüksek performanslı ve %99.9 uptime garantili hosting paketlerimize göz atın.

Paketleri İncele →