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.