API tasarımı: sözleşme, sürüm, dayanıklılık
Tutarlı adlandırma, hata biçimleri, sayfalama, sürümleme, eş etkililik ve hız sınırlamasıyla uzun ömürlü API’ler tasarlar, sözleşmeyi testlerle korursun.
Seviye 301 · 18 ders · 15 pratik lab
Dersler
Sözleşme
- Kaynak modellemesi ve adlandırma
- Önce sözleşme: OpenAPI ile tasarım
- Hata biçimi: problem+json
- Sayfalama türleri: ofset ve imleç
- Süzme, sıralama ve alan seçimi
- Kısa görev: kötü tasarlanmış bir API’yi düzelt
Değişim ve dayanıklılık
- Sürümleme ve geriye uyumluluk
- Kullanımdan kaldırma ve bunu duyurmak
- Eş etkililik anahtarları
- Eşzamanlı güncellemeler: ETag ve If-Match
- Hız sınırlama ve ilgili başlıklar
- Uzun süren işler: 202 ve durum adresi
- Webhook’lar ve imzalı bildirimler
- Kısa görev: iki kez gönderilen ödemeyi tek kayıt yap
Kalite
- Sözleşme testleri
- GraphQL ve REST karşılaştırması
- API gözlemi: günlük, ölçüm, izleme kimliği
- Bitirme görevi: bir rezervasyon API’si tasarla ve uygula
Pratik lablar
- Fiil dolu adresleri kaynaklara çevir: /getUsers ve /deleteOrder gibi uç noktaları kaynak ve HTTP yöntemi temelli bir tasarıma dönüştür.
- Hata gövdelerini problem+json'a geçir: Her uç noktada farklı biçimde hata dönen bir API'yi tek bir problem+json biçimine geçir.
- Sözleşme testiyle kırılmayı yakala: Mobil istemcinin beklediği sözleşmeyi test olarak yazıp API'deki bir alan adı değişikliğini CI'da yakala.
- Ofset sayfalamasının atladığı kaydı bul: Sayfalar arasında yeni kayıt eklenince bir kaydın atlandığını göster ve nedenini açıkla.
- Hareket kayıtlarını imleçle sayfala: Hesap hareketleri API'sini ofset yerine imleç tabanlı sayfalamaya taşı ve kararlı bir sıralama anahtarı seç.
- Alan seçimi ve filtre dilini tasarla: Mobil istemci için fields parametresi ve güvenli bir filtre sözdizimi ekleyip yanıt boyutundaki düşüşü ölç.
- Kıran değişikliği tespit et: İki sürümün yanıtları arasındaki farklardan hangisinin istemcileri kıracağını belirle.
- Kaldırılacak alanı duyur: Kaldırılacak bir alan için Deprecation ve Sunset başlıklarını ekleyip belgeye geçiş notu yaz.
- İki API sürümünü yan yana yaşat: v1 ve v2'yi aynı kod tabanından sunan, ortak mantığı tekrar etmeyen bir yönlendirme katmanı kur.
- Çift oluşan siparişin izini sür: Günlüklerde aynı siparişin iki kez oluşturulduğu anı bulup buna hangi yeniden denemenin yol açtığını göster.
- Kayıp güncellemeyi ETag ile önle: İki yöneticinin aynı ürünü aynı anda düzenlediği durumda ikinci yazmayı If-Match ile 412 dönerek reddet.
- İade uç noktasını idempotent yap: İade isteklerine idempotency anahtarı ekleyip aynı anahtarla farklı gövde gelince çakışma hatası döndür.
- Hız sınırı başlıklarını oku: Bir API'nin yanıt başlıklarından kalan kotayı ve sıfırlanma zamanını okuyup kaç istek daha atabileceğini hesapla.
- Webhook imzasını doğrula: Ödeme sağlayıcısından gelen bildirimlerin HMAC imzasını ve zaman damgasını doğrulayıp sahte olanları reddet.
- Uzun raporu 202 ve durum adresiyle sun: Bir dakika süren rapor üretimini 202, durum adresi ve bitince indirme bağlantısı veren bir akışa çevir.
Kurs hakkında
Tutarlı adlandırma, hata biçimleri, sayfalama, sürümleme, eş etkililik ve hız sınırlamasıyla uzun ömürlü API’ler tasarlar, sözleşmeyi testlerle korursun.
Ne öğreneceksin
- Sözleşme
- Değişim ve dayanıklılık
- Kalite
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.