Rest ve Rest API Nedir?

Rest (Representational State Transfer), Server (Sunucu) ve Client (İstemci) arasında veri alışverişini sağlayan bir mimari modeldir. Rest API de Rest mimarisinin kullanımıyla web hizmetleri arasında veri alışverişini sağlayan uygulama ara birimidir.

Rest API metodunu ve içindeki bileşenlerini daha iyi açıklayabilmek için öncelikle bazı kavramların ne olduğunu ve ne işe yaradığını açıklamalıyız. Bu sebeple “Rest API Nedir ve Nasıl Çalışır?” konusuna girmeden önce bazı teknik terimlerin tanımlamasını yapalım isterseniz.

URL Nedir?

URL (Uniform Resource Locator) Tekdüzen Kaynak Bulucu aslında internet üzerinde yayınlanan verilerin kaynağının bulunduğu konumu tanımlamaya yarayan adreslerdir. URL adreslerini bir internet sitesinde bulunan içerik, veri, dosya gibi bileşenlere ulaşılmasını sağlayan dosya yolu olarak da tanımlayabiliriz. İnternet sayfaları ve internet üzerindeki bilgilere URL adresleri ile ulaşabiliyoruz. Örnek normal bir URL yapısına aşağıdaki örnek verilebilir.

HTTP Nedir?

HTTP (HyperText Transfer Protocol), Sunucu (Server) ve İstemci (Client) arasında internet adresi üzerinden bağlantı oluşturmak ve verilerin aktarılması için kullanılan ve internet sitelerinin bağlantıları için uzun zamandır kullanılan bir TCP/IP protokolüdür.

HTTP İstekleri (Request) bu veri alışverişin nasıl olacağına dair tanımlamalar yaparak işlemin gerçekleşmesini sağlarlar. GET, POST, DELETE, PUT gibi komutlar İstemci ve Sunucu arasındaki işlemler için kullanılırlar. HTTP istekleri sırasında istemci ve sunucu arasındaki Requestlere belli anlamları olan durum kodlarıyla yanıt verilir. Bu yanıtları kullanıcılar görmez bu iletişim İstemci ve Sunucu arasında gerçekleşir. 

API Nedir? Ne İşe Yarar?

API (Application Programming Interface) yani Uygulama Programlama Arayüzü şeklinde Türkçeye çevrilebilen bir modüldür. API sayesinde programlar, kendilerinde olmayan ve farklı programlarda mevcut olan bazı işlev ve kabiliyetleri çekerek kendi bünyesinde çalıştırabiliyor.

Özetle bir programın işlevini, başka bir program üzerinde çalıştırabilmek için API denen servisleri kullanırız. Genelde web tabanlı uygulamalarda sık kullanılan bir araç olan API’ler sayesinde internet uygulamaları çok daha kullanışlı bir yapıya kavuşabiliyor.

SOAP Nedir?

SOAP (Simple Object Access Protocol) yani Basit Nesne Erişim Protokolü, dağıtık yapıda bulunan web servislerinin iletişimi gerçekleştirmek üzere kullanılan Sunucu – İstemci mantığında çalışan bir protokoldür. RPC (Remote Procedure Call) modelini kullanan SOAP, keskin kurallar kullanarak iletişim gerçekleştirir.

Veri iletimlerinde ise XML formatı kullanılır. SOAP’ın ilk kurgusu Rest API’ye göre daha zordur ancak bir defa yapılandırdıktan sonra sorunsuz bir şekilde çalışır. Çoğu yazılımcı hafif kolay yapılandırılan servisleri kullanmayı tercih eder ancak, bazen kolay yapılandırılan servisler kullanım esnasında daha farklı sıkıntılara neden olabilirler.

JSON Nedir?

JSON (JavaScript Object Notation) tüm sunucular arasında haberleşme için kullanılan ve verilerin XML’e göre daha az komplike, daha küçük boyutta ve daha kolay taşınmasını sağlayan bir protokoldür. XML yerine daha hafif bir yapıda olduğu için daha çok tercih edilir. SOAP veri taşınması için XML kullanırken Rest API, verilerin taşınması için JSON formatını kullanır.

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

Rest, HTTP protokolünü kullanarak, URL adresleri üzerinden veri ve dosya alışverişi sağlayan bir yapıdır. Rest API ise Rest işlemini yapabilmek için kurgulanmış modüle verilen isimdir. Bu API (Modül) yardımıyla Rest işlemleri ve veri alışverişi yapılıyor.

SOAP yerine neden Rest tercih ediliyor derseniz;

  • Rest ile veri akışları SOAP’taki XML yerine daha hafif bir yapıdaki JSON formatı yardımıyla gerçekleşir.
  • SOAP’taki RPC gibi karmaşık bağlantı yapıları yerine HTTP protokolü kullanılır.
  • SOAP gibi sert standartlara göre daha esnek yapısı vardır.
  • SOAP gibi Proxy kullanımına zorlanmazsınız.
  • Kolay entegre edilebilen bir yapıdadır.

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.
  • PATCH, verinin bir kısmının güncellenmesi için kullanılan bir istektir.
Rest API Çalışma Metodu

Bir Rest API örneklemi;

http://api.example.com/device-management/managed-devices/{id}/scripts/{id}

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir