Web Servislere Giriş Rest API

Doğan Ay
4 min readMar 20, 2023

REST API, Representational state transfer; İlgili isteğe karşılık gelen verinin JSON / XML gibi dosya formatlarında gönderilmesidir.
REST API
, geliştiricilerin HTTP protokolünü kullanarak GET ve POST gibi isteklerde bulunup, bu isteklere çeşitli formatlarda yanıt aldığı bir dağıtık sistemdir. REST API, REST mimarisinin prensiplerine taşıyan API’lardır. Tüm prensiplerin karşılanması durumunda RESTful API olarak da adlandırılır.

REST API kullanılırken web tarayıcılarının sayfa transfer sürecini bir parçası olan HTTP fiilleri kullanılarak haberleşilir. Dolayısıyla geliştirici olarak size tanıdık gelen GET, POST, PUT DELETE vb. fiiler REST API ile haberleşmede oldukça yaygın kullanılır. HTTP protokolünü kullanıyor olması nedeniyle REST API’i pratik olarak herhangi bir programlama dilinde kullanabilir. REST ile aktarılan verilerin formatı HTML, JSON, XML veya farklı bir formata sahip olabilir.
REST Prensipleri

  • İstemci — Sunucu: (Client — Server)
  • Tek Tip Arayüz: (Uniform Interface)
  • Durumsuzluk: (Statelessness)
  • Önbelleklenebilir: (Cacheable)
  • Katmanlı Sistem: (Layered System)
  • İsteğe Bağlı Kod: (Code On Demand — Optional)

RESTful API Nedir?

RESTful API,bir API’nin REST mimarisinin tüm sınırlamalarına sahip olması durumunda API’yi tasvir etmek için kullanılan sıfattır. Hemen aşağıda mini liste olarak yer verdiğimiz içeriklere sahip API’ler, RESTful API olarak adlandırırlar. Listedeki sınırlamalardan tek birinin sağlanmaması durumunda bile API, “RESTful” olma özelliğini kaybetmiş olur. Bir API’nin RESTful API mı, yoksa REST API mi olduğu ayrımını yapmak adına bu listeye hakim olmanız tavsiye edilir:

  • İstemci ve sunucu: İstemci front-end, sunucu ise back-end ile ilgilenir. Her ikisi birbirinden bağımsız olarak değiştirilebilir.
  • Durumsuzluk: İstemcinin sorgu ve oturum durumuna dair depolama verileri hiçbir sunucu üzerinde barındırılmaz.
  • Önbellekleme: İstemciler performansı arttırmak için yanıtı (tıpkı bir internet sayfasının statik elementi gibi) önbellekleyebilirler.
  • Tabaklı sistem: İstemci sondaki sunucu veya aradaki süreç boyunca bir aracıya bağlı olup olmadığını söyleyemez.
  • Talep üzerine kod: Sunucular, istemcinin fonksiyonelliğini geçici olarak icra ederek kod yollayabilir, genişletebilir ya da özelleştirebilir.

Değişmeyen arayüz: Değişmeyen arayüz (Uniform interface), RESTful API’nin değişmez temellerini temsil eder. Bu arayüz, mimariyi sadeleştirerek parçalara böler. Bu sayede her taraf birbirinden bağımsız gelişebilir. Değişmeyen arayüze ilişkin dört sınırlama vardır. Karışmaması namına bu maddeye ayrı bir mini listeyle devam edeceğiz ancak “değişmeyen arayüz” bir RESTful API’nin temeli olup, bu eleman yukarıdaki listeden bağımsız değildir.

  • Kaynakların belirlenmesi: Kaynakların belirlenmesi, RESTful API için bir esastır. Kaynaklar isteklerle belirlenir. Bu genellikle web tabanlı sistemlerde değişmeyen arayüz kaynak kimliği (uniform resource identifier, URI) kullanılarak gerçekleştirilir. Kaynaklar sunumlarla aynı değildirler. Sunucu hiçbiri dahili sunuma sahip olmamasına rağmen veritabanından gelen sonuç verisini HTML, JSON veya XML olarak gönderebilir.
  • Bu temsiller yoluyla kaynakların manipülasyonu: Herhangi bir istemci, temsili kaynağı bağlı bir metaveriyle birlikteyse kaynağı değiştirmek veya silmek için yeteri kadar bilgisi vardır.
  • Kendinden açıklayıcı mesajlar: Mesajların tümünde nasıl işleneceğine dair yeterli bilgi vardır. Örneğin ayrıştırıcının çalıştıracağı bir internet medya tipi ile belirlenmiştir.
  • Aplikasyon durumu motoru olarak hipermedya: İstemciler durumu değişikliğini sunucu tarafından belirlenen dinamik eylemlerle yapabilirler

REST API’leri ne için kullanılır?

RESTful web servislerinin ana faydalarından biri, büyük bir esneklik sunması ve bu RESTful API’yi daha etkin bir şekilde kullanmanıza olanak sağlamasıdır.

Bulut hizmetleri

Bir API aracılığıyla bir kaynağa bağlanmak için URL’nin nasıl işlendiğini yönetmeniz gerekeceğinden, REST API’leri bulut web hizmetleri için de kullanışlıdır. Programcılar, interneti kullanarak bulut hizmetlerine bağlanmak için RESTful web hizmetlerini kullanır. Bir geliştirici, internet sağlayıcısının API’sini kullanan kod oluşturur, gerekli girdileri ve değişkenleri verir ve ardından eylemin beklendiği gibi çalıştığından emin olmak için yanıtı kontrol eder. Son kullanıcılar, RESTful web hizmetleri gibi bir bulut hizmetini kullanarak hesaplama altyapısı, depolama sistemleri veya izleme sistemleri gibi bulut web hizmetleri tarafından sunulan istemci uygulamalarına veya web hizmetlerine erişebilir.

Web kullanımı

Bu web API’leri, bir kullanıcı web projesinden, bir iPhone uygulamasından , bir IoT cihazından veya bir Windows Mobile’dan alınabilir çünkü REST, istemci tarafı işlevselliğine bağlı değildir. Belirli bir istemci tarafı çerçevesiyle sınırlandırılmadan işletmeniz için mimari oluşturabilirsiniz.

HTTP İSTEKLERİ
Rest ile oluşturulan Server — Client bağlantısı sonucunda veri alışverişi belirli istekler sayesinde gerçekleşir. Rest sırasında kullanılan HTTP istekleri ve işlevleri aşağıdaki gibidir;

  • GET, veri listelemek ve görüntülemek için kullanılır.
  • POST, veri eklemek için kullanılan bir istektir.
  • DELETE, veri silmek için kullanılır.
  • PUT PATCH UPDATE, verinin bir kısmının güncellenmesi için kullanılan bir istektir.
Rest API Çalışma Metodu

Rest API’de dönen HTTP Durum Kodları

HTTP 200 (OK)

Veri listeleme sonuçları 200 durum koduyla yanıtlanır.

HTTP 201 (Creates)

Veri eklendiği zaman 201 ile yanıt verilir.

HTTP 204 (No Content)

Veri silindiği zaman verilen yanıt 204’tür.

HTTP 400 (Bad Request)

Kayıt ekleme ve güncelleme talebinde gönderilen veri doğrulamadan geçemezse ve sorun yaşanırsa 400 yanıtı gönderilir.

HTTP 401 (Unauthorized)

API yardımıyla yapılan Client — Server bağlantısı için bir login işlemi yapılması gerekirken login yapılmadıysa 401 yanıtı verilir.

HTTP 403 (Forbidden)

401 deki gibi Authorization işlemi gereken yerde yetkisiz giriş yapılmaya çalışılırsa 403 yanıtı verilir.

HTTP 404 (Not Found)

Verinin talep edildiği URL adresi yok veya bahsedilen URL adresindeki veri geçersiz bir veri ise 404 yanıtı verilir.

HTTP 429 (Too Many Request)

Sunucunun belirli sayıda yapılacak istek sayısı kısıtlıdır ve bu kapasiteni üstünde bir istek geldiği zaman 429 yanıtı verilerek reddedilir.

Web servislere giriş yazımızın burada sonuna gelmiş bulunmaktayız.
Esenlikler…

--

--

Doğan Ay

Merhaba Ben Doğan AY. Karamanoğlu Mehmetbey Üniversitesi bilgisayar mühendisliğini mezunuyum. React , Angular js ,spring boot alanlarında çalışıyorum.