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

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



           formatta aktardığını belirtir. Her parçanın bağımsız olarak gelişmesine imkân sunar ve böylelikle
           mimariyi,  dolayısıyla  iletişim  sürecini  basitleştirir.  Ayrıca  yalnızca  istenilen  kaynakların,  API

           kullanıcısına sunulması sağlar.




           1.2. Durumsuzluk


           REST  mimarisinde  durumsuzluk,  sunucunun  her  isteği  önceki  tüm  isteklerden  bağımsız  olarak
           tamamladığı bir iletişim yöntemini ifade eder. Istemciler, kaynakları istedikleri sırada talep edebilir
           ve her istek diğer isteklerden yalıtılmıştır. Sunucu gelen isteği işlemek için istemcinin durumunu
           bilmesine gerek duymaz ve aynı şekilde istemci de sunucudaki durum bilgisine ihtiyaç duymaz. Bu
           REST API tasarımı kısıtlaması, sunucunun isteği her seferinde tam olarak anlayabileceği ve yerine
           getirebileceği  anlamına  gelir.  Durumsuzluğa  ulaşmak  için,  her  istek,  önceki  mesajları  görmeden
           sunucunun kaynak ve işlem hakkında bilmesi gereken tüm bilgileri içermelidir. Sunucu ayrıca, önceki
           oturum  paketlerinden  gelen  bağlamsal  bilgiler  olmadan  istemcinin  tamamen  anlayabileceği  bir

           mesajla yanıt vermelidir.

           Sunucu  tarafında  oturum  bilgileri  tutulmaz  ve  sunucu  istekler  ilgili  verileri  kaydetmez.  Sunucu
           tarafındaki servisin isteği işleyebilmesi için bir veri gerekiyorsa bu verinin kesinlikle her istek paketi
           içerisinde gönderilmesi gereklidir. Yani sunucu için istemciden gelen her istek durumsuz bir şekilde
           başlar ve istemcinin gönderdiği veriler ile geçici bir durum oluşur. Istemci durum verilerini kendi
           önbelleği  aracılığıyla  kaydeder.  Durumsuzluk,  önceki  isteklerin  ve  yanıtların  depolanmasından
           kaynaklanan sunucu yükünü ortadan kaldırarak REST API’leri güvenilir, hızlı ve ölçeklenebilir hale
           getirir.





           1.3. Istemci Sunucu Ayrımı


           REST  API’lerde  istemci  ve  sunucu  bağımsız  olarak  çalışır.  Istemci  sunucu  tarafındaki  altyapı  vs.
           hakkında bilgiye ihtiyaç duymaz. Sunucu tarafında yapılacak değişiklikler istemcileri etkilemeyeceği
           için bağımlılık azaltılmış olur. Istemci sunucuya kendisi ile paylaşılmış API dokümanları doğrultusunda
           geçerli istekler iletir ve geçerli yanıtlar alır.




           1.4. Katmanlı Sistem


           Katmanlı bir sistem mimarisinde istemci sunucuya doğrudan bağlanmak yerine arada bulunan yetkili
           aracılara bağlanarak sunucudan yanıt alır. Istemci yalnızca istek göndereceği sunucuyu bilir. Istek
           gönderdiği sunucu arka tarafta belki 10 farklı sunucuya istek gönderip verileri toparlayıp sunuyor
           olabilir ya da isteği yük dengeleyici sistemler ile işliyor olabilir. Aslında burada katmanlı olabilen taraf

           sunucu kısmıdır. Katmanlı mimari, sunucularda farklı bileşenlerin değiştirilebilir olması ve bakımına
           imkân sağlar.
   130   131   132   133   134   135   136   137   138   139   140