TR/EN
Blog

API Nedir? Ne İşe Yarar ve Nasıl Çalışır?

Yayın tarihi: · 9 dk okuma

Bir uygulamada "Google ile giriş yap" butonuna bastığınızda, bir e-ticaret sitesinde kargonuzun nerede olduğunu gördüğünüzde ya da hava durumu uygulamasını açtığınızda arka planda hep aynı şey oluyor: bir yazılım başka bir yazılımla API üzerinden konuşuyor. Peki API nedir, nasıl çalışır ve neden bu kadar önemli? Bu yazıda konuyu teknik olmayanların da anlayacağı şekilde, örnekler ve tablolarla anlattık.

API Nedir?

API, Application Programming Interface yani uygulama programlama arayüzü demek. Kısaca, iki yazılımın birbiriyle nasıl konuşacağını tarif eden kurallar bütünü.

En sık kullanılan benzetme restoran örneği: Siz (müşteri) mutfağa girip yemeği kendiniz yapmıyorsunuz. Garsona menüden ne istediğinizi söylüyorsunuz, garson siparişi mutfağa iletiyor ve yemeği size getiriyor. Burada garson API'nin ta kendisi. Menü ise API'nin dokümantasyonu: neyi isteyebileceğinizi ve nasıl isteyeceğinizi gösteriyor. Mutfakta neler olup bittiğini bilmenize gerek yok.

Günlük Hayattan API Örnekleri

  • Hava durumu uygulamaları: Verileri kendileri ölçmüyor, bir meteoroloji servisinin API'sinden çekiyor.
  • Online ödeme: E-ticaret sitesi kart bilgilerinizi bir ödeme sağlayıcısının API'sine gönderiyor, "onaylandı" ya da "reddedildi" cevabını alıyor.
  • Haritalar: Bir sitedeki "mağazamızın konumu" haritası, bir harita servisinin API'siyle gösteriliyor.
  • "Google / Apple ile giriş yap": Kimlik doğrulama, ilgili servisin API'si üzerinden yapılıyor.
  • Kargo takibi: Mağaza, kargo firmasının API'sine takip numarasını sorup güncel durumu size gösteriyor.

API Nasıl Çalışır?

Çoğu modern API, web'in kullandığı HTTP protokolü üzerinden çalışıyor. Mantık basit:

  1. İstemci (bir uygulama, web sitesi yada başka bir sunucu) belirli bir adrese bir istek gönderir.
  2. Sunucu isteği alır, yetkiyi kontrol eder, gerekli işlemi yapar (veritabanından okumak, kayıt oluşturmak vb.).
  3. Sunucu bir yanıt döner; genelde JSON formatında veri ve isteğin sonucunu belirten bir durum kodu.

Bir API İsteğinin Parçaları

ParçaNe işe yarar?Örnek
Endpoint (URL)İsteğin gideceği adreshttps://api.example.com/v1/orders/1042
HTTP metoduNe yapmak istediğinizi söylerGET, POST, DELETE...
Header (başlık)Kimlik doğrulama, veri formatı gibi ek bilgilerAuthorization: Bearer ...
Body (gövde)Gönderilen veri (genelde JSON){"name": "Ayşe"}
Durum koduYanıtta isteğin sonucunu belirtir200, 404, 500

HTTP Metotları

MetotNe yapar?Örnek
GETVeri okurBir siparişin detaylarını getirmek
POSTYeni kayıt oluştururYeni sipariş vermek
PUTKaydı tamamen güncellerAdres bilgisinin tamamını değiştirmek
PATCHKaydın bir kısmını güncellerSadece telefon numarasını değiştirmek
DELETEKaydı silerSiparişi iptal etmek

Sık Görülen Durum Kodları

KodAnlamıNe zaman görülür?
200 OKBaşarılıİstek sorunsuz işlendi
201 CreatedOluşturulduYeni kayıt başarıyla oluşturuldu
400 Bad RequestHatalı istekEksik veya yanlış formatta veri
401 UnauthorizedKimlik doğrulanmadıAPI anahtarı yok ya da geçersiz
403 ForbiddenYetki yokKimlik doğru ama bu işlem için izin yok
404 Not FoundBulunamadıBöyle bir kayıt veya adres yok
429 Too Many RequestsÇok fazla istekKullanım sınırı (rate limit) aşıldı
500 Internal Server ErrorSunucu hatasıSorun sunucu tarafında

Örnek Bir İstek ve Yanıt

Komut satırından curl ile bir siparişin detayını isteyelim:

curl -H "Authorization: Bearer API_ANAHTARINIZ" \
     https://api.example.com/v1/orders/1042

Sunucunun döneceği yanıt şuna benzer bir JSON olur:

{
  "id": 1042,
  "status": "shipped",
  "total": 349.90,
  "currency": "TRY",
  "items": [
    { "product": "Klavye", "quantity": 1 }
  ]
}

Uygulama bu veriyi alıp ekranda "Siparişiniz kargoya verildi" diye gösteriyor. Sizin gördüğünüz kısım bu kadar, arkadaki herşeyi API hallediyor.

API Türleri

TürVeri formatıÖzelliğiNerede kullanılır?
RESTGenelde JSONBasit, yaygın, HTTP metotlarıyla çalışırWeb ve mobil uygulamaların çoğu
GraphQLJSONİstemci tam olarak hangi alanları istediğini söylerKarmaşık arayüzler, mobil uygulamalar
SOAPXMLKatı kurallar, eski ama hala yaygınBankacılık, kurumsal ve kamu sistemleri
gRPCProtocol Buffers (ikili)Çok hızlı, düşük veri boyutuMikroservisler arası iletişim
WebSocketSerbestSürekli açık, iki yönlü bağlantıCanlı sohbet, anlık bildirim, borsa verisi

Kimin Kullanabildiğine Göre API'ler

TürKimler kullanır?Örnek
Açık (public) APIHerkes, genelde bir API anahtarıylaHava durumu, harita servisleri
Partner APISadece anlaşmalı iş ortaklarıKargo veya ödeme entegrasyonları
İç (private) APISadece şirketin kendi sistemleriMobil uygulamanın kendi sunucusuyla konuşması

API Güvenliği

API'ler verilere açılan kapılar olduğu için güvenlik çok önemli. Temel önlemler şunlar:

  • API anahtarı: İsteği yapanın kim olduğunu belirleyen gizli bir anahtar. Kodun içine gömüp GitHub gibi yerlere yüklemeyin; ortam değişkeni ya da gizli anahtar yönetimi kullanın.
  • OAuth 2.0 ve token'lar: Kullanıcı adına sınırlı ve süreli erişim vermek için kullanılan standart ("Google ile giriş" bunu kullanır).
  • HTTPS: Tüm API trafiği şifreli olmalı; düz HTTP üzerinden anahtar göndermek kapıyı açık bırakmak demek.
  • Rate limiting: Kötüye kullanımı ve aşırı yükü önlemek için belirli sürede yapılabilecek istek sayısını sınırlamak.
  • En az yetki: Her anahtara sadece ihtiyacı olan izinleri verin, okuma yapacak bir entegrasyona silme yetkisi vermeyin.

API'ler ve Yapay Zeka

Bugün yapay zekayı ürünlere eklemenin en yaygın yolu da API. Büyük dil modeli sağlayıcıları modellerini API olarak sunuyor; siz metni gönderiyorsunuz, model cevabı dönüyor. Kendi sunucunuzda açık kaynak bir model çalıştırdığınızda da (ör. Ollama ile) model yine bir API üzerinden kullanılıyor. Bunun nasıl yapıldığını yapay zeka sanal sunucuda nasıl çalışır yazımızda anlattık. Mevcut sistemlerinize yapay zeka entegrasyonu için AI servisimize de göz atabilirsiniz.

Kendi API'nizi Nerede Çalıştırırsınız?

Kendi uygulamanız için bir API yazdığınızda onu 7/24 ayakta tutacak bir sunucuya ihtiyacınız var. Seçenekler kabaca şöyle:

  • Sanal sunucu: Node.js, Python, PHP, Go... hangi dille yazdıysanız doğrudan çalıştırabilirsiniz. Küçük–orta API'ler için en pratik başlangıç. VECDC sanal sunucuları NVMe diskli, aylık $6'dan başlıyor ve yaklaşık 5 dakikada hazır.
  • Docker ile: API'nizi container olarak paketleyip her ortamda aynı şekilde çalıştırırsınız. Docker kurulu gelen Developer VDS bunun için ideal.
  • Kubernetes ile: Trafik büyüdükçe otomatik ölçeklenen, kesintisiz güncellenen bir yapı istiyorsanız Kubernetes Server ile başlayabilirsiniz.

Sık Sorulan Sorular

API ile web servis arasındaki fark nedir?

Web servis, ağ (genelde HTTP) üzerinden erişilen bir API türüdür. Yani her web servis bir API'dir ama her API bir web servis değildir; örneğin bir işletim sisteminin ya da yazılım kütüphanesinin sunduğu arayüzler de API'dir ama ağ üzerinden çalışmaz.

REST API nedir?

REST, HTTP metotlarını (GET, POST, PUT, DELETE) kullanan ve kaynaklara URL'ler üzerinden erişen bir API tasarım yaklaşımıdır. Veri genelde JSON formatında taşınır. Bugün web ve mobil uygulamalarda en yaygın kullanılan API türüdür.

API anahtarı nedir?

API anahtarı, API'ye istek gönderen uygulamayı tanımlayan gizli bir koddur. Sağlayıcı bu anahtarla kimin ne kadar istek yaptığını takip eder ve yetkisiz erişimi engeller. Anahtar şifre gibi saklanmalı, kodun içine gömülüp herkese açık yerlere yüklenmemelidir.

API kullanmak ücretli mi?

Duruma göre değişir. Birçok API belirli bir kullanım sınırına kadar ücretsizdir, sınır aşıldığında istek veya kullanım miktarına göre ücretlendirilir. Şirketlerin kendi iç API'leri ise sadece çalıştıkları sunucunun maliyetini doğurur.

Kısacası

API, yazılımların birbiriyle konuşmasını sağlayan bir arayüz. Bir istek gönderiyorsunuz, karşı taraf işi yapıp size bir yanıt dönüyor; mutfakta ne olduğunu bilmenize gerek yok. Bugün kullandığımız neredeyse her uygulama onlarca API'nin bir araya gelmesiyle çalışıyor. Kendi API'nizi yayına almak ya da sistemlerinizi birbirine bağlamak konusunda yardım isterseniz bize yazın, birlikte bakalım.

Sanal Sunucunuz 5 Dakikada Hazır

Adanmış kaynaklı NVMe sanal sunucu paketleri aylık $6'dan başlıyor.

Paketleri İncele →