REST API Nedir ve Nasıl Çalışır – Yeni Başlayanlar İçin Bir Kılavuz

Yayınlanan: 2023-11-09

REST API veya Temsili Durum Transferi Uygulama Programlama Arayüzü, sistemlerin İnternet üzerinden birbirleriyle iletişim kurmasına olanak tanıyan bir dizi kural ve kuraldır. Ağ bağlantılı uygulamaların tasarlanmasında yaygın olarak kullanılan bir mimari stildir.

REST, bir web tarayıcısı veya mobil uygulama gibi istemcinin sunucuya istekte bulunduğu ve sunucunun istenen verilerle yanıt verdiği veya belirli eylemleri gerçekleştirdiği istemci-sunucu modelini temel alır. REST API'leriyle ilgili temel kavramların bir dökümünü burada bulabilirsiniz.

Kaynaklar

REST'te her şey bir kaynak olarak kabul edilir; bu, belirli bir veri parçası veya bir nesne olabilir. Örneğin bir blog yazısı, bir kullanıcı profili veya bir ürün kaynak olabilir.

Tekdüzen Kaynak Tanımlayıcıları

Her kaynak, genellikle URI olarak bilinen benzersiz bir Tekdüzen Kaynak Tanımlayıcısı (URI) ile tanımlanır. URI, sunucudaki kaynağın adresini temsil eder.

HTTP Yöntemleri

REST API'ler, kaynaklar üzerinde gerçekleştirilecek eylemleri tanımlamak için HTTP yöntemlerini kullanır. En sık kullanılan yöntemler şunlardır.

  • GET: Bu yöntem kaynağın bir temsilini döndürür.
  • POST: Yeni bir kaynak oluşturur.
  • PUT: Bu yöntem mevcut bir kaynağı günceller veya değiştirir.
  • DELETE: Bir kaynağı siler.

Temsiller

Kaynaklar JSON, XML ve HTML dahil çeşitli formatlarda temsil edilebilir. İstemci ve sunucu, HTTP başlıklarını kullanarak temsil formatı üzerinde anlaşırlar.

Durum Bilgisi Olmayan İletişim

REST API'leri durum bilgisizdir; bu, istemciden sunucuya gelen her isteğin, isteği anlamak ve işlemek için gerekli tüm bilgileri içermesi gerektiği anlamına gelir. Sunucu, istekler arasında istemciye özgü herhangi bir durumu korumaz.

Tepkiler

Sunucu bir istek aldığında bunu işler ve bir yanıt gönderir. Yanıt tipik olarak isteğin başarısını veya başarısızlığını gösteren bir durum kodunu (örneğin, başarılı için 200, bulunamadı için 404) ve talep edilen verileri veya ilgili bilgileri içerir.

“REST” ve “API” Sırasıyla Ne Anlama Geliyor?

“REST” Temsili Devlet Transferi anlamına gelir. Ağ bağlantılı uygulamaları ve web hizmetlerini tasarlamaya yönelik mimari bir stildir.

“API” Uygulama Programlama Arayüzü anlamına gelir. Çeşitli yazılım programlarının birbirine bağlanmasını sağlayan bir dizi kural ve protokoldür. API'ler, farklı yazılım sistemi bileşenlerinin nasıl etkileşime girebileceğini ve veri alışverişinde bulunabileceğini tanımlar.

Birleştirildiğinde "REST API", REST mimari stilinin ilkelerini takip eden bir API anlamına gelir. HTTP (Köprü Metni Aktarım Protokolü) kullanılarak İnternet üzerinden erişilebilen web hizmetleri oluşturmaya yönelik bir dizi kural ve sözleşmedir. REST API'leri, sistemlerin genellikle JSON veya XML biçiminde iletişim kurması ve veri alışverişinde bulunması için standartlaştırılmış bir yol sağlar.

REST API Nasıl Çalışır?

REST API (Temsili Durum Transferi Uygulama Programlama Arayüzü), istemci-sunucu modeline dayalı olarak çalışır ve bir dizi ilke ve kuralı izler. Burada REST API'nin nasıl çalıştığına ilişkin adım adım bir genel bakış bulunmaktadır.

1. Müşteri Bir Talep Gönderir

Bir web tarayıcısı, mobil uygulama veya başka bir uygulama olabilen istemci, sunucuya bir HTTP isteği göndererek iletişimi başlatır. İstek, istenen kaynağın URL'sini (Tekdüzen Kaynak Bulucu) ve gerçekleştirilecek eylemi belirten HTTP yöntemini (GET, POST, PUT, DELETE vb.) içerir.

2. Sunucu Talebi Alır

Sunucu isteği alır ve sağlanan URL'ye ve HTTP yöntemine göre işler. Sunucu istenen kaynağı tanımlar ve gerçekleştirilecek uygun eylemi belirler.

3. Sunucu İsteği İşler

HTTP yöntemine bağlı olarak sunucu, istenen kaynak üzerinde gerekli eylemleri gerçekleştirir. Örneğin:

  • GET: Sunucu istenen kaynağı alır ve yanıt olarak istemciye geri gönderir.
  • POST: Sunucu, istemci tarafından gönderilen verilere dayanarak yeni bir kaynak oluşturur.
  • PUT: Sunucu, mevcut bir kaynağı istemci tarafından sağlanan verilerle günceller veya değiştirir.
  • DELETE: Sunucu istenen kaynağı sistemden kaldırır.

4. Sunucu Yanıt Gönderiyor

Sunucu, isteği işledikten sonra bir HTTP yanıtı oluşturur. Yanıt, isteğin sonucunu belirten bir durum kodunu içerir (örneğin, başarılı için 200, bulunamadı için 404) ve talep edilen verileri veya ilgili bilgileri içerebilir. Yanıt genellikle istemciye JSON veya XML gibi bir biçimde geri gönderilir.

5. Müşteri Yanıtı Alır

HTTP yanıtı sunucu tarafından istemciye gönderilir. İsteğin başarısını veya başarısızlığını belirlemek için durum kodunu yorumlar. Yanıt veri içeriyorsa müşteri bu verileri gerektiği gibi çıkarabilir ve kullanabilir.

6. Müşteri Yanıtı İşler

İstemci uygulaması alınan yanıtı işler, ilgili bilgileri çıkarır ve yanıt verilerine dayanarak gerekli eylemleri gerçekleştirir. Bu, kullanıcı arayüzünün güncellenmesini, verilerin yerel olarak depolanmasını veya API'ye yönelik sonraki isteklerin tetiklenmesini içerebilir.

Bu istek-yanıt döngüsü, istemci ile sunucu arasındaki her etkileşim için tekrarlanır. REST API'leri durum bilgisizdir; bu, istemciden gelen her isteğin, sunucunun isteği anlaması ve işlemesi için gerekli tüm bilgileri içermesi gerektiği anlamına gelir. Sunucu, istekler arasında istemciye özgü herhangi bir durumu korumaz.

Neden REST API'yi Seçmelisiniz?

Genel olarak, bir REST API seçmek basitlik, ölçeklenebilirlik, birlikte çalışabilirlik ve mevcut web standartlarıyla uyumluluk sunar. Bu faktörler, REST'i API'ler oluşturmak için popüler bir seçim haline getirerek geniş bir uygulama yelpazesinde farklı sistemler arasında verimli iletişim ve entegrasyon sağlar.

Bir REST API seçmenin uygulama geliştirmeniz açısından avantajlı olmasının birkaç nedeni vardır.

1. Basitlik ve Kullanım Kolaylığı

REST API'leri, hem geliştiriciler hem de API ile etkileşimde bulunan müşteriler için nispeten basit ve anlaşılması kolaydır. Standart HTTP yöntemlerini kullanırlar ve kaynak tabanlı bir yaklaşımı takip ederek çalışmayı ve öğrenmeyi sezgisel hale getirirler.

2. Ölçeklenebilirlik

REST API'leri ölçeklenebilir olacak şekilde tasarlanmıştır ve çok sayıda istemciyi ve isteği işleyebilir. API'nin performansını ve yanıt verebilirliğini artırabilen, yük dengeleme ve önbelleğe alma gibi temel HTTP protokolünün ölçeklenebilirlik özelliklerini kullanırlar.

3. Esneklik ve Birlikte Çalışabilirlik

REST API'leri farklı sistemler ve platformlar arasında birlikte çalışabilirliği sağlar. Bunlara, çoğu programlama dilinde mevcut olan standart HTTP kitaplıkları kullanılarak erişilebilir; böylece istemciler, teknoloji yığınlarından bağımsız olarak API'yi kullanabilirler. Bu, üçüncü taraf hizmetleriyle entegrasyonu kolaylaştırır ve çeşitli istemci uygulamalarının geliştirilmesine olanak tanır.

4. Vatansız Doğa

REST API'leri durum bilgisizdir; yani istemciden gelen her istek, sunucunun onu işlemesi için gerekli tüm bilgileri içerir. Bu basitlik, sunucuların istekler arasında müşteriye özel durumu koruması gerekmediğinden API'leri daha ölçeklenebilir hale getirir. Ayrıca daha iyi hata toleransı ve daha kolay yük dengeleme sağlar.

5. Geniş Kapsamlı Benimseme ve Topluluk Desteği

REST yaygın olarak benimsenen bir mimari tarzdır ve destek için geniş bir geliştirici ve kaynak topluluğu mevcuttur. Bu, REST API'leriyle çalışmak için özel olarak oluşturulmuş çok sayıda kitaplık, çerçeve ve araç bulabileceğiniz ve geliştirme görevlerini daha kolay ve verimli hale getirebileceğiniz anlamına gelir.

6. Web Standartlarına Uyumluluk

REST API'leri, HTTP protokolünün üzerine kurulu olup, onun özelliklerinden yararlanır ve standartlarına uyar. Bu uyumluluk, REST API'lerinin önbelleğe alma mekanizmaları, güvenlik protokolleri (HTTPS) ve kimlik doğrulama mekanizmaları (örn. OAuth) gibi mevcut web teknolojileriyle sorunsuz bir şekilde entegre olabilmesini sağlar.

Çözüm

Sonuç olarak REST API'leri, web hizmetleri oluşturmak ve sistemler arasındaki iletişimi kolaylaştırmak için standartlaştırılmış ve ölçeklenebilir bir yaklaşım sağlar. REST API'leri, HTTP yöntemleri, kaynak tabanlı URL'ler ve kendini açıklayan yanıtlar kullanma gibi REST ilkelerini takip ederek basitlik, esneklik ve birlikte çalışabilirlik sunar.

REST API'leri dilden bağımsızdır ve çeşitli platformlarda uygulanarak farklı sistemler arasında kolay entegrasyon ve iletişime olanak tanır. Gelişim için kaynak ve araçlar sağlayan geniş bir toplulukla birlikte geniş çapta benimseniyor ve destekleniyorlar.