Page 136 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 136

136 | REST API ve gRPC Mimari Stillerinin Karşılaştırılması





           1.5. Önbelleğe Alınabilirlik


           RESTful API, sunucu yanıt süresini iyileştirmek için bazı yanıtları istemcide veya başka bir aracıda
           saklama  süreci  olan  önbelleğe  almayı  destekler.  Sunucu  tarafından  istemciye  istek  yanıtının
           önbelleğe alınıp/alınamayacağı ya da ne süre ile önbelleğe alınabileceği hakkında bilgi verilir. Bu
           sayede istemci sunucuya tekrar istek göndermeden önce varsa kendi tarafındaki önbelleğe bakar

           ve önbellek geçerli ise önbelleğe kaydedilen sonuç ile cevap üretilerek ağ (network) tarafında ve
           dolaylı olarak performans noktasında tasarruf sağlanır.




           1.6. Istek Üzerine Kod


           REST API’deki isteğe bağlı tek kısıtlamadır. Bağımlılık ilkesine aykırı olduğu için nadiren kullanılır ve
           kullanımı pek tercih edilmez. Sunucu istemciye çalıştırması için bir kod parçası iletir. Örnek olarak,
           herhangi bir web sitesindeki bir kayıt formu doldurulduğunda, tarayıcının yapılan hataları (ör. Yanlış
           telefon numarası) gönderilen kod parçasını kullanarak belirlemesi gösterilebilir.




           2. REST API’lerin Avantajları ve Dezavantajları


           REST API’lerin en önemli avantajı basitliktir. Servislerin oluşturulması, entegrasyonu, dokümantasyonu
           gibi noktalarda bu basitlik önemli avantajlar sağlamaktadır. Yaygın olarak kullanılması sebebiyle
           geliştirme  aşamasında  kullanılacak  önemli  araçlara  sahiptir  ve  hataların  çözümü  için  kolaylıkla
           destek alınabilir.

           REST API mimarisinde istemci-sunucu etkileşimleri optimize edildiğinden, bu mimariyi uygulayan
           sistemler verimli şekilde ölçeklendirilebilir. Durumsuzluk; sunucunun, geçmiş istemci istek bilgilerini

           saklaması gerekmediğinden sunucu yükünü azaltır. Iyi yönetilen önbelleğe alma süreci, bazı istemci-
           sunucu etkileşimlerini kısmen veya tamamen ortadan kaldırır. Tüm bu özellikler performansı azaltan
           iletişim sorunlarına neden olmadan ölçeklendirmeyi destekler.

           REST  API,  istemci-sunucu  ayrımını  destekler.  Bu  hizmetler,  her  bir  parçanın  bağımsız  olarak
           gelişebilmesi için çeşitli sunucu bileşenlerini basitleştirir ve birbirinden ayırır. Sunucu uygulamasındaki
           platform veya teknoloji değişiklikleri, istemci uygulamasını etkilemez. Uygulama işlevlerini katmanlı
           yapıda olması özelliği, esnekliği daha da artırır.

           REST  API’ler,  kullanılan  teknolojiden  bağımsızdır.  API  tasarımını  etkilemeden  hem  istemci  hem
           de  sunucu  uygulamalarını  çeşitli  programlama  dillerinde  geliştirme  yapılabilir.  Ayrıca,  iletişimi
           etkilemeden her iki taraftaki temel teknoloji de değiştirilebilir.

           REST  API’lerin  çeşitli  dezavantajları  da  bulunmaktadır.  HTTP  protokolü  istek  ve  yanıt  mesajları
           üzerine eklediği katmanlar performansın en yüksek seviyede kullanılmasını kısıtlamaktadır. Ayrıca
           HTTP protokolünün kullanılması REST API’leri çeşitli güvenlik zafiyetlerine yol açmaktadır. Son olarak
           REST API’ler istek-yanıt temelli yaklaşımda çalıştığı için canlı veri akışını desteklememektedir.
   131   132   133   134   135   136   137   138   139   140   141