# API vs SDK

Adres: https://softwaredictionary.org/tr/karsilastirma/api-vs-sdk
Son güncelleme: 2026-10-05

Kısaca: API, bir servisin sunduğu istekler ya da fonksiyonlardır; SDK ise genellikle bu API üzerine kurulan ve onu bir dilde kullanmayı kolaylaştıran araç takımıdır.

## API ile SDK arasındaki fark nedir?

API (uygulama programlama arayüzü) bir sözleşmedir: bir web servisinin endpoint'leri ya da bir kütüphanenin fonksiyonları gibi, neyi isteyebileceğinizi ve karşılığında ne alacağınızı listeler. SDK (yazılım geliştirme kiti) ise bir platform üzerinde geliştirme yapmak için bir araç paketidir: istemci kütüphaneleri, dokümantasyon, kod örnekleri ve bazen komut satırı araçları ya da emülatörler.

Web servislerinde ikisi genellikle birlikte gelir. Bir ödeme şirketi bir HTTP API'si yayımlar, ardından onu saran JavaScript, Python ve Java SDK'ları: istekleri kendiniz oluşturup JSON'u ayrıştırmak yerine `payments.create()` çağırırsınız; kimlik doğrulamayı, yeniden denemeleri, sayfalamayı ve tipleri SDK ekler. SDK'nın yaptığı her şeyi API'yi doğrudan kullanarak da yapabilirsiniz; SDK size bu zahmeti kazandırır.

Platformlarda ise başlangıç noktası SDK'dır. Bir Android ya da iOS uygulaması yapmak, platformun derleyicileri, kütüphaneleri, emülatörleri ve dokümantasyonu içeren SDK'sını kurmak demektir; platformun API'leri, kodunuzun çağırdığı parçalarıdır.

Akılda tutmanın kısa bir yolu: API, sipariş verebileceğiniz şeylerin menüsüdür; SDK ise tek bir mutfak için bir mutfak aletleri ve tarifler setidir. Bir API'yi her zaman kullanırsınız, ya doğrudan ya da bir SDK üzerinden; SDK isteğe bağlıdır ve ancak altındaki API kadar iyidir.

| Özellik | API | SDK |
| --- | --- | --- |
| Ne olduğu | Bir arayüz: sunulan istekler ya da fonksiyonlar | Bir platform ya da servisle geliştirme yapmak için bir araç takımı |
| İçerdiği | Bir spesifikasyon ve arkasındaki servis ya da kütüphane | Kütüphaneler, dokümantasyon, örnekler ve çoğu zaman araçlar |
| Dil | Web API'lerinde dilden bağımsız: HTTP ve JSON gibi | Tek bir dil ya da platform için yapılır |
| Kullanım yolu | HTTP istekleri ya da fonksiyon çağrıları | SDK kütüphanesinin metotları |
| Sizin yerinize hallettiği | Sözleşmenin ötesinde hiçbir şey | Kimlik doğrulama, yeniden denemeler, sayfalama, tipler |
| Gerekli mi? | Evet, servise ulaşmanın yolu budur | Hayır, API'nin üzerinde bir kolaylıktır |
| Örnek | Bir ödeme servisinin endpoint'leri | O ödeme servisinin Python paketi |

## API şu durumlarda doğru seçim

- Diliniz için bir SDK yok ya da resmî SDK güncel değil.
- Yalnızca bir iki çağrıya ihtiyacınız var ve yeni bir bağımlılık istemiyorsunuz.
- İstekler, zaman aşımları ve hataların nasıl ele alınacağı üzerinde tam kontrol istiyorsunuz.

## SDK şu durumlarda doğru seçim

- Diliniz için güncel tutulan resmî bir SDK var.
- Pek çok endpoint kullanıyorsunuz ve tipler, otomatik tamamlama ve daha az hata istiyorsunuz.
- Aksi hâlde kimlik doğrulamayı, yeniden denemeleri ya da sayfalamayı kendiniz yazmanız gerekecek.

## Sık sorulan sorular

**Her API'nin bir SDK'sı var mı?**

Hayır. Pek çok API, özellikle küçük ya da şirket içi olanlar, doğrudan HTTP üzerinden kullanılır. SDK'lar büyük, herkese açık servislerde yaygındır; bu servisler daha çok geliştiricinin hızla entegre olabilmesi için SDK yayımlar.

**Bir kütüphane SDK mıdır?**

İstemci kütüphanesi çoğu zaman bir SDK'nın ana parçasıdır, ama SDK genellikle etrafına dokümantasyon, örnekler ve araçlar da ekler. Kavramlar örtüşür ve pek çok şirket tek bir istemci kütüphanesine SDK der.

**Bir SDK, API'deki sorunları gizleyebilir mi?**

Yeniden denemelerle ya da daha anlaşılır hatalarla onları yumuşatabilir, ama API'nin izin verdiğini değiştiremez. API'de bir özellik eksikse SDK'da da eksiktir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
