İçeriğe geç
academia.sh

Kurs Orta

Web API Tasarımı

Bu kursun sonunda

Kursa başla

01

API Biçemleri

Aynı işi karşılayan farklı arayüz biçemleri: sözleşme ve uyumluluk kavramı, kaynak temelli ile uzak yordam çağrısı ve sorgu temelli yaklaşımların istek sayısı ve taşınan bayt üzerinden karşılaştırılması, REST ilkeleri, ikili protokoller ve istek–yanıt dışı iletişim.

  1. 01 API Nedir Bir arayüzü sözleşme yapan şey: tüketicinin yazılı olmayan varsayımları, uyumlu ve kırıcı değişimin tüketici davranışıyla tanımlanması, hoşgörülü okuyucu ile katı okuyucunun aynı değişime verdiği farklı yanıt ve sözleşmenin sahibinin kim olduğu.
  2. 02 API Biçemlerinin Karşılaştırması Aynı işi karşılayan üç biçem: kaynak temelli, uzak yordam çağrısı biçimli ve sorgu temelli yaklaşımlar aynı senaryoda yazılıp istek sayısı, tel üzerindeki bayt ve taşınan alanın kullanılan oranı ölçülerek karşılaştırılır; gereksinim değiştiğinde hangi tarafın değişmek zorunda kaldığı gösterilir.
  3. 03 REST İlkeleri Kaynak temelli biçemin arkasındaki kısıt kümesi: durumsuzluğun aynı isteği iki ayrı süreçte sınayarak gösterilmesi, tek biçim arayüzün kaynak adını bilmeyen bir istemciyle ölçülmesi, önbelleklenebilirliğin varlık etiketiyle taşınan bayta etkisi ve katmanlı sistemin bu kısıtlardan doğması.
  4. 04 Uzak Yordam Çağrısı ve gRPC Sözleşmeyi önce yazan yaklaşım: şema dosyasından üretilen doğrulayıcı, alan numarasının tel üzerindeki kimlik olması, kendi ikili çerçevelemesiyle metin biçiminin bayt karşılaştırması ve gRPC'nin bu tasarımı akış türleriyle birlikte getirmesi.
  5. 05 GraphQL Tek uç nokta üzerinden istemci güdümlü sorgu: sunucunun yayımladığı tip sistemi, sorgunun yürütülmeden önce şemaya göre doğrulanması, alan başına çözümleme ve bir alanın hata vermesiyle oluşan kısmen başarılı yanıt; değişkenlerle aynı belgenin yeniden kullanımı.
  6. 06 Eski Nesil Protokoller Zarf tabanlı protokollerin tasarımı ve mirası: başlık ile gövdenin ayrılması, işlem adının zarfın içinde taşınması, hatanın taşıma katmanı yerine zarfta bildirilmesi, zarf maliyetinin kayıt sayısıyla değişimi ve bugünkü arayüz kararlarının hangilerinin buradan devralındığı.
  7. 07 Eşzamanlı ve Eşzamansız API'ler İstek–yanıt kalıbının dışına çıkan iletişim biçimleri: olay akışı, uzun yoklama ve kısa yoklama aynı olay dizisinde bağlantı sayısı, taşınan bayt ve teslim gecikmesiyle karşılaştırılır; uzun süren iş kabul edilen istek ve ayrı bir durum kaynağıyla modellenir.

02

Kaynak ve Sözleşme Tasarımı

Alan kavramlarının kaynağa dönüşmesi, URI düzeni, HTTP yöntemlerinin ve durum kodlarının doğru eşlenmesi, gövde biçimi, sayfalama, filtreleme, alan seçimi, tekillik anahtarları ve bağlantı odaklı yanıtlar.

  1. 01 Kaynak Modelleme Alan kavramlarının adreslenebilir kaynağa dönüşmesi: eylem adlarıyla büyüyen uç nokta listesi, işlemin durum değişimi olarak modellenmesi, hiçbir tabloya karşılık gelmeyen hesaplanmış kaynaklar ve kimlik seçiminin bedeli.
  2. 02 URI Tasarımı Kaynak adreslerinin yol düzeni: yol ile sorgu bölümünün işbölümü, koleksiyon ve tekil kaynak adlandırması, sabit dilimle parametre diliminin çakışması, iç içe yolların üst dilimi ve kanonik adres kararı.
  3. 03 HTTP Yöntemlerinin Doğru Kullanımı Yöntemin taşıdığı sözler: güvenli yöntemin veriyi değiştirmemesi ve etkisiz yöntemin tekrarlandığında tek etki üretmesi; her özelliğin veritabanındaki satır sayısı sayılarak sınanması, PATCH'in artırım ve atama yüzleri, PUT ile POST arasındaki kimlik seçimi.
  4. 04 Durum Kodu Seçimi Aynı senaryo kümesinin iki farklı kod eşlemesiyle yanıtlanması ve farkın istemcide ölçülmesi: yakın kodların ayrımı, 2xx ailesinin anlamları, yanlış eşlemenin ürettiği sessiz başarı ve boşa giden yeniden denemeler.
  5. 05 İstek ve Yanıt Gövdeleri Gövde biçiminin sözleşme değeri: alan adlandırmada tek yazım, büyük tamsayıların ve ondalık tutarların sessiz kaybı, tarihlerin bölge bilgisiyle yazılması, eksik alan ile boş değerin ayrılması ve koleksiyon yanıtının zarf kararı.
  6. 06 Sayfalama Koleksiyonun parça parça sunulması: atlama tabanlı sayfalamada araya kayıt girdiğinde oluşan tekrar ve atlama, imleç tabanlı sayfalamanın aynı senaryoda kaymaması, derin sayfalamanın sorgu planı ve süre üzerindeki maliyeti.
  7. 07 Filtreleme, Sıralama ve Arama Sorgu parametrelerinin tasarımı: süzgeç ve sıralama adlarının izin listesiyle sütuna çevrilmesi, istemci değerlerinin bağlı değişkenle taşınması, izin listesi dışındaki isteğin reddedilmesi ve sıralama bağlarının sayfalamada kayıt kaybına yol açması.
  8. 08 Kısmi Yanıt ve Alan Seçimi Gösterimin ayrıntı düzeyine istemcinin katılması: aşırı ve eksik veri çekmenin istek sayısı ve bayt cinsinden ölçülmesi, alan seçimi ile genişletmenin izin listesiyle kurulması ve bu esnekliğin sözleşmeye getirdiği maliyet.
  9. 09 Etkisizlik Anahtarları Yeniden denemede yinelenen etkiyi önleyen tekillik anahtarı: anahtarın kapsamı ve gövde özetiyle eşleştirilmesi, aynı anahtarla gelen ikinci isteğin ilk yanıtı yeniden sunması, farklı gövdeyle çakışmanın reddi ve anahtar deposunun yaşam süresi.
  10. 10 Bağlantı Odaklı Yanıtlar Yanıtın kendi içinde gezinme ve işlem bağlantıları taşıması: sayfaların yalnızca sonraki bağlantısı izlenerek dolaşılması, kaynağın durumuna göre açılıp kapanan işlem bağlantıları ve istemcinin adres kurma yükünün ölçülmesi.

03

Hata, Sürüm ve Belge

Hata yanıtlarının tek biçime bağlanması, alan düzeyi doğrulama bildirimi, yol/başlık/içerik tabanlı sürümleme, kırıcı değişikliklerin şema farkından saptanması, kullanımdan kaldırma penceresinin ölçülmesi ve sözleşmenin makine okunur belge, sözleşme testi ve sahte sunucuyla sınanması.

  1. 01 Hata Yanıt Biçimi Hata gövdesinin uç nokta başına uydurulmasının istemciye maliyeti, standart problem ayrıntısı biçiminin beş çekirdek alanı ve gövdeyi tek katmandan üreten sorun kataloğunun ölçülerek doğrulanması.
  2. 02 Doğrulama Hataları Alan düzeyinde hata listesinin problem ayrıntısına eklenmesi, ilk hatada durmakla hepsini toplamanın istek turu farkı ve alan adlarının istemcideki giriş kutularıyla eşleşmesini sağlayan gövde yolu kuralı.
  3. 03 Sürümleme Stratejileri Aynı kaynağın iki sürümünün tek sunucuda yayımlanması, yol, başlık ve içerik tabanlı sürümlemenin istemci koduna ölçülen eşit maliyeti ve aracıların sürümü ayırt edip edemediğinden doğan gerçek fark.
  4. 04 Geriye Dönük Uyumluluk Aynı değişikliğin istek ve yanıt yönünde ters sınıflandırılması, iki şema sürümünü karşılaştırıp kırıcı değişiklikleri saptayan bir fark alıcı ve sürüm numarasının tartışmadan farktan türetilmesi.
  5. 05 Kullanımdan Kaldırma Politikası Kullanımdan kaldırmanın yanıtın kendisinde duyurulması, tüketici başına sürüm telemetrisinin toplanması ve geçiş süresi sonunda eski sürümde kalan tüketici ile trafik oranının hesaplanması.
  6. 06 Makine Okunur Belgeler Sözleşmenin şema olarak yazılması, aynı tanımdan hem doğrulayıcı hem insan okur belge üretilmesi ve sunucunun ürettiği yanıt ile tanımın ayrıştığı durumun çalışma anında yakalanması.
  7. 07 Sözleşme Testleri Tüketici beklentilerinin dosyaya yazılması, sağlayıcıya karşı çalıştırılması, kırıcı bir değişiklikte hangi tüketicinin sınamasının düştüğünün gösterilmesi ve etki alanının değişiklikten önce hesaplanması.
  8. 08 Sahte Sunucular Şemadan örnek yanıt üreten bir sunucunun yazılması, istemcinin ona karşı geliştirilmesi, aynı kodun gerçek sunucuya geçtiğinde çalıştığının ölçülmesi ve sahte sunucunun gizlediği dalların sayılması.

04

GraphQL Ayrıntısı

Tip sisteminin kurulması, üç işlem türü, alan başına çözücüler, parça ve değişkenlerle sorgu yeniden kullanımı, N+1 sorununun toplu yüklemeyle ölçülen çözümü, imleç temelli bağlantı modeli, alan düzeyi yetkilendirme ve kısmi hata, sorgu maliyeti sınırı ve HTTP aktarımının önbellekleme sonuçları.

  1. 01 Şema ve Tip Sistemi Nesne, skaler, numaralandırma, arayüz ve birleşim tiplerinin tanımlanması, sorgu belgesinin ayrıştırılması ve şemanın sorguyu çalıştırmadan önce denetleyerek hataları bulması.
  2. 02 Sorgu, Mutasyon ve Abonelik Üç işlem türünün yürütme kuralları, mutasyon alanlarının sıralı yürütülmesinin tek kopyalı kitap üzerinde ölçülen sonucu ve aboneliğin aynı seçim kümesini zaman içinde birden çok kez uygulaması.
  3. 03 Çözücüler Çözücünün dört girdisi, varsayılan çözücünün ne yaptığı, yürütmenin düzey düzey ilerlemesi ve bir sorgunun ürettiği çözücü çağrısı ile veri kaynağı turu sayısının ölçülmesi.
  4. 04 Parçalar ve Değişkenler Parçanın yinelenen seçim kümesini tek yere toplaması, çakışan parçalardaki alanların birleştirilmesiyle düşen çözücü çağrısı ve değişkenlerin ayrı belge sayısını sabitlemesi.
  5. 05 N+1 Sorunu ve Toplu Yükleme Liste uzunluğuyla birlikte büyüyen veri kaynağı turu sayısı, aynı iş parçacığındaki çağrıları tek turda birleştiren yükleyici katmanı ve 101 turdan 3 tura düşen ölçüm.
  6. 06 Sayfalama Kalıpları İmleç temelli bağlantı modelinin kurulması, kenar ile düğümün ayrılması, liste değişirken ofset ve imleç sayfalamanın ölçülen davranış farkı ve iç içe listelerde sayfalamanın çoğalması.
  7. 07 Hata ve Yetkilendirme Alan düzeyinde hata toplama, kısmi veriyle hatanın aynı yanıtta dönmesi, çözücüleri sarmalayan yetki katmanı ve zorunlu alanlarda boşluğun üst düzeylere yayılmasının ölçülmesi.
  8. 08 Sorgu Maliyeti ve Derinlik Sınırı Çevrimli tip sisteminde sorgu derinliğinin sınırsız büyümesi, çalıştırmadan önce hesaplanan maliyet üst sınırı ve derinlik sınırının tek başına yetmediğini gösteren ölçüm.
  9. 09 HTTP Üzerinden GraphQL Tek uç nokta üzerinden aktarım, POST ile GET arasındaki önbellekleme farkı, önceden kaydedilmiş belgeler ve tek adresin aracılara ve kütüklere bıraktığı bilginin ölçülmesi.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat