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

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




           3.2. Sunucu Yanıtı


           REST API’lerde sunucu yanıtı durum kodu, mesaj gövdesi ve header bileşenlerini içerir. Durum kodu
           isteğin başarılı veya başarısız olduğunu belirten üç haneli bir koddur. 2XX kodları başarıyı ifade
           ederken 4XX ve 5XX kodları hataları belirtir. 3XX kodları ise URL yönlendirmesini ifade eder. Mesaj

           gövdesi header kısmında gösterilen metin formatında içerik bilgisini içerir. Header yanıtla ilgili üst
           verileri içerir. Üst veriler, istek hakkında sunucu, kodlama, tarih ve içerik türü gibi çeşitli bilgileri içerir.



           gRPC




           RPC mimarisinin bir çeşidi olan gRPC (Google Remote Procedure Call), Google tarafından 2015

           yılında  geliştirilen  ve  mikroservisler  arasında  yüksek  hızlı  iletişime  ve  ölçeklenebilirliğe  imkân
           veren açık kaynak kodlu ve sözleşme tabanlı bir platformlar arası bir iletişim protokolüdür. HTTP
           2.0  protokolü  üzerine  inşa  edilmiştir,  çift  yönlü  veri  alışverişine  ve  farklı  dillerde  geliştirilmiş
           servislere entegrasyona imkân verir. HTTP  protokolü ve RPC etkileşimleri, karmaşıklığı azaltmak
           amacıyla  API  geliştiricileri  ve  sunuculardan  soyutlanmıştır.  gRPC,  çağırılacak  veri  biçimleri  ve
           işlemler üzerinde bir   sözleşme/uzlaşı oluşturmak için Arayüz Tanımlama Dili’ni (IDL) kullanılır.
           IDL  kullanılarak  uzaktan  çağrılabilecek  yöntemler  ve  parametreler  veri  yapısı  ve  dönüş  türleri

           tanımlanır.

           gRPC, veri alışverişinde için oldukça verimli bir mesajlaşma formatı sağlayan protokol arabelleklerini
           (Protobuf) mesajlaşma formatı olarak kullanır. gRPC için popüler API yönetim araçları arasında
           omgRPC, gRPCox, Wombat, Milkman vb. bulunmaktadır.






                                                      Proto İsteği               gRPC İstemci






                                                               Proto Yanıtı     Ruby İstemci
                       gRPC Sunucu


                                                       Proto İsteği
                                                                                 gRPC İstemci
                     C++ Sunucu


                                                         Proto Yanıtı
                                                                               Android İstemci



                                               Şekil 2. gRPC İstemci Sunucu Mimarisi
   133   134   135   136   137   138   139   140   141   142   143