Ana içeriğe geç

Yan yana

APIvsSDK

API ile SDK arasındaki fark nedir?

Güncellendi 2 dk okuma7 fark

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

Uygulama Programlama Arayüzü

API, bir yazılımın başka bir yazılımdan veri ya da işlem talep etmesini sağlayan, belgelenmiş ve öngörülebilir kurallar bütünüdür.

API sayfasını oku

SDK

Yazılım Geliştirme Kiti

SDK (yazılım geliştirme kiti), belirli bir platform veya servis için geliştirme yapmaya yarayan araç, kütüphane, dokümantasyon ve örneklerden oluşan pakettir.

SDK sayfasını oku

API ve SDK karşılaştırması

ÖzellikAPISDK
Ne olduğuBir arayüz: sunulan istekler ya da fonksiyonlarBir platform ya da servisle geliştirme yapmak için bir araç takımı
İçerdiğiBir spesifikasyon ve arkasındaki servis ya da kütüphaneKütüphaneler, dokümantasyon, örnekler ve çoğu zaman araçlar
DilWeb API'lerinde dilden bağımsız: HTTP ve JSON gibiTek bir dil ya da platform için yapılır
Kullanım yoluHTTP istekleri ya da fonksiyon çağrılarıSDK kütüphanesinin metotları
Sizin yerinize hallettiğiSözleşmenin ötesinde hiçbir şeyKimlik doğrulama, yeniden denemeler, sayfalama, tipler
Gerekli mi?Evet, servise ulaşmanın yolu budurHayır, API'nin üzerinde bir kolaylıktır
ÖrnekBir ödeme servisinin endpoint'leriO ödeme servisinin Python paketi

Fark, açıklamalı

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.

Hangisini kullanmalısınız?

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.

Bir müşteri oluşturmak: API ile ve bir SDK ile

APIjavascript
// Calling the HTTP API directly
const res = await fetch("https://api.example.com/v1/customers", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ email: "ada@example.com" }),
});
if (!res.ok) throw new Error(`API error ${res.status}`);
const customer = await res.json();
SDKjavascript
// The same call through the service's SDK
import { Client } from "example-sdk";

const client = new Client({ apiKey: API_KEY }); // handles auth and retries
const customer = await client.customers.create({ email: "ada@example.com" });

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.

Daha fazla

Ayarlar