CodeGym/Java Blogu/Rastgele/REST'e genel bakış. Bölüm 1: REST nedir?
John Squirrels
Seviye
San Francisco

REST'e genel bakış. Bölüm 1: REST nedir?

grupta yayınlandı
MERHABA! Bugün çok ilginç ve en önemlisi işgücü piyasasında yüksek talep gören bir konuyu öğreneceğiz: REST. REST'e genel bakış.  Bölüm 1: REST nedir?  - 1 REST'e genel bakışımızı üç bölüme ayıracağız:
  1. İlk bölümde, REST'in tarihçesini ele alacağız ve REST'in dayandığı ilkeleri açıklayacağız.

  2. İkinci bölümde, bir istemci ile sunucu arasındaki iletişimin HTTP protokolü aracılığıyla nasıl gerçekleştiğini ele alacağız.

  3. Üçüncüsünde "Postman" adlı bir program kullanarak test edeceğimiz küçük bir RESTful uygulaması yazacağız.

Makale, aşağıdaki terimlere aşina olan okuyucular için hazırlanmıştır:
  • HTTP
  • URL ve URI
  • JSON ve (daha az ölçüde) XML
  • Bağımlılık enjeksiyonu

Bölüm 1. REST nedir?

REST, BT dünyasında pek çok şey gibi bir kısaltmadır. "Temsili Durum Aktarımı" ndan türetilmiştir . Bu, bir bilgisayar ağındaki dağıtılmış bir sistemin bileşenleri arasındaki etkileşim için bir mimari stildir. Basitçe söylemek gerekirse, REST, her biri fiziksel olarak farklı yerlere yerleştirilebilen sistemin farklı bileşenleri arasındaki etkileşim (veri alışverişi) stilini belirler. Bu mimari stil, dağıtılmış bir sistem tasarlanırken uyulan tutarlı bir dizi kısıtlamadır. Bu kısıtlamalara bazen REST'in yol gösterici ilkeleri denir. Çok değil, sadece 6 tane var. Onlar hakkında biraz sonra konuşacağız.
REST ilkeleri göz önünde bulundurularak oluşturulmuş, yani REST kısıtlamalarını ihlal etmeyen uygulamalara "RESTful" denir.

REST'in tarihi

REST terimi, HTTP protokolünün yaratıcılarından biri olan Roy Fielding tarafından Ph.D. 2000 yılında "Mimari Stiller ve Ağ Tabanlı Yazılım Mimarilerinin Tasarımı" başlıklı tez. REST terimi hala genç olarak adlandırılabilse de, temsil ettiği kavram World Wide Web'in tam merkezinde yer almaktadır. Terimin tarihine derinlemesine dalmayacağız. Birincil kaynaklara dalmak istiyorsanız, Fielding'in tezine bir göz atın .

REST kısıtlamaları ve ilkeleri

Yukarıda belirtildiği gibi REST, dağıtılmış bir sistemin bileşenlerinin birbirleriyle nasıl etkileşime girmesi gerektiğini tanımlar. Genel olarak, bu bir istek-yanıt süreci aracılığıyla gerçekleşir. İsteği gönderen bileşene istemci , isteği işleyen ve istemciye bir yanıt gönderen bileşene sunucu adı verilir .. İstekler ve yanıtlar çoğunlukla HTTP protokolü aracılığıyla gönderilir. HTTP, Köprü Metni Aktarım Protokolü anlamına gelir. Tipik olarak, bir sunucu bir web uygulamasıdır. Müşteri neredeyse her şey olabilir. Örneğin, bir sunucudan veri isteyen bir mobil uygulama. Veya veri indirmek için bir web sayfasından bir sunucuya istek gönderen bir tarayıcı. Uygulama A, Uygulama B'den veri talep edebilir. Bu durumda, A, B'ye göre bir istemcidir ve B, A'ya göre bir sunucudur. Aynı zamanda A, B, C, D, vb.'den gelen istekleri işleyebilir. Bu durumda, uygulama A hem sunucu hem de istemcidir. Her şey bağlama bağlıdır. Kesin olan bir şey var: İsteği gönderen bileşen istemcidir. Bir isteği alan, işleyen ve yanıtlayan bileşen sunucudur. Fakat, Bileşenleri bir istek-yanıt süreci aracılığıyla iletişim kuran her sistem, RESTful bir sistem değildir. Bir sistemin RESTful olarak değerlendirilmesi için altı REST kısıtlamasına uyması gerekir:

1. İstemci-sunucu mimarisi

Bu kısıtlama endişelerin ayrılması ile ilgilidir. İstemci arayüzünün gereksinimlerini, verileri depolayan sunucunun gereksinimlerinden ayırmak gerekir. Bu kısıtlama, istemci kodunun diğer platformlar için daha taşınabilir olmasını sağlar ve sunucu tarafının basitleştirilmesi, sistemin ölçeklenebilirliğini artırır. "İstemci" ve "sunucu" ayrımı yapmak, birbirlerinden bağımsız olarak geliştirilmelerini sağlar.

2. vatansız

Bir RESTful mimarisi, aşağıdaki koşulların karşılanmasını gerektirir. İstekler arasındaki dönemde sunucu, istemcinin durumu hakkında bilgi saklamamalıdır ve bunun tersi de geçerlidir. İstemciden gelen tüm istekler, sunucuya isteği tamamlamak için gerekli tüm bilgileri verecek şekilde oluşturulmalıdır. Böylece, hem sunucu hem de istemci, önceki mesajlara güvenmeden alınan herhangi bir mesajı "anlayabilir".

3. Önbelleğe Alınabilir

İstemciler, sunucu yanıtlarını önbelleğe alabilir. İstemcilerin sonraki isteklere yanıt olarak eski veya yanlış verileri almaması için bunlar, sırasıyla, açıkça veya dolaylı olarak önbelleğe alınmış veya önbelleğe alınmamış olarak belirlenmelidir. Doğru önbelleğe alma, bazı istemci-sunucu etkileşimlerini tamamen veya kısmen ortadan kaldırmaya yardımcı olarak sistem performansını ve ölçeklenebilirliği daha da artırır.

4. Tek tip arayüz

Bir RESTful mimarisinin temel gereksinimleri, birleşik, tek biçimli bir arabirim içerir. İstemci, bir istek gönderirken kullanması gereken biçimi ve adresleri her zaman anlamalıdır ve buna karşılık sunucu da istemci isteklerine yanıt verirken kullanması gereken biçimi anlamalıdır. Neyin, nerede, hangi biçimde ve nasıl veri gönderileceğini açıklayan bu tutarlı istemci-sunucu etkileşimi birleşik bir arabirimdir.

5. Katmanlar

Katmanlar derken, ağın hiyerarşik yapısını kastediyoruz. Bazen bir istemci doğrudan sunucuyla iletişim kurabilir ve bazen sadece bir ara düğümle iletişim kurabilir. Ara sunucuların kullanımı, yük dengeleme ve dağıtılmış önbelleğe alma sayesinde ölçeklenebilirliği artırabilir. Bir örnek verelim. Tüm dünyada popüler olan bir mobil uygulama düşünün. Uygulamanın ayrılmaz bir parçası, resimlerin yüklenmesini içerir. Kullanıcı sayısı milyonlarla ifade edildiğinden, tek bir sunucu bu kadar ağır bir yükü kaldıramaz. Sistemi katmanlara ayırmak bu sorunu çözecektir. İstemci bir ara düğümden bir resim isterse, ara düğüm o anda en az yüklü olan sunucudan resmi ister ve resmi istemciye döndürür. Önbelleğe alma, hiyerarşinin her düzeyinde doğru şekilde uygulanırsa,

6. İsteğe bağlı kod (isteğe bağlı)

Bu kısıtlama, istemcinin sunucudan uygulamacıklar veya betikler biçiminde kod indirerek işlevselliğini genişletebileceği anlamına gelir.

RESTful mimarisinin avantajları

Yukarıda belirtilen tüm kısıtlamalara uyan uygulamalar aşağıdaki avantajlara sahiptir: güvenilirlik (istemcinin durumunu kaydetmeye gerek yoktur, bu durum kaybolabilir)
  • performans (önbellek kullanımı nedeniyle)
  • ölçeklenebilirlik
  • şeffaf iletişim
  • basit arayüzler
  • taşınabilirlik
  • kolayca değişiklik yapma yeteneği
  • gelişme ve yeni gereksinimlere uyum sağlama yeteneği
REST'e genel bakış. Bölüm 2: İstemci ile sunucu arasındaki iletişim REST'e Genel Bakış. Bölüm 3: Spring Boot'ta RESTful bir hizmet oluşturma
Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok