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