Rest, Restful API ve JSON Nedir?

Metin Topcu
4 min readMar 30, 2023

--

Bu yazımda Rest mimarisi, Rest API, Restful API, Restul Web API ve Rest API’de verilerin taşınması için kullandığımız JSON formatından, JSON ile XML farkları ve Rest ile SOAP’ın farklarıyla ilgili bir bölümden bahsetmeyi düşünüyorum.

https://www.hosting.com.tr/bilgi-bankasi/rest-api/

Tanımlar

API, diğer yazılım sistemleriyle iletişim kurmak için uymanız gereken kuralları tanımlar. Geliştiriciler, diğer uygulamaların kendi uygulamalarıyla programlama yoluyla iletişim kurabilmesi için API’ler sunar veya oluşturur.

Web API, web’deki client’lar ile kaynaklar arasındaki bir ağ geçidi olarak düşünebilirsiniz.

REST, bir API’nin nasıl çalışması gerektiğine ilişkin koşulları uygulamaya koyan bir yazılım mimarisidir. REST, başlangıçta internet gibi karmaşık bir ağdaki iletişimi yönetmek için bir kılavuz olarak oluşturulmuştu.

REST mimari stiline uygun API’lere REST API’ler adı verilir. REST mimarisini uygulayan web hizmetlerine RESTful web hizmetleri adı verilir.

REST mimarisini kullanan servislere ise RESTful servis denir.

REST, Representational State Transfer (Temsili Durum Transferi) kısaltmasıdır.

REST, web servis oluşturmak için kullanılan web servis yöntemlerinden birisidir.

REST, programlama dilinden bağımsız olarak web servis oluşturmak için kullanılan bir yapıdır.

REST mimarisinin en önemli özelliği SOAP için kullanımı zorunlu olan WSDL gibi bir tanımlamaya ihtiyaç duymaması ve XML haricinde istenilen biçimde veri alışverişine imkan vermesidir.

JSON

JSON’da tıpkı XML gibi veri iletişimi esnasında kullanılmaktadır. 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.

JSON dokümanları, “key-value” (anahtar-değer) veri çiftine dayanan, içerisinde sıralı listelere (array) de yer verebilen metin tabanlı dokümanlardır.

JSON vs XML

JSON dokümanlarının dosya boyutları daha azdır.

XML, içerisinde barındırdığı verileri bir ağaç yapısı içerisinde kullanırken, JSON bunu “key-value” biçiminde tutar. JSON’ da verileri saklamak için array’ler kullanılabilir, XML dokümanlarında da array yapısı bulunur ancak daha farklı bir yapı içerisindedir. JSON dokümanları içerisinde bulunan verileri bir kaç kod satırı ile ayrıştırabilirken, XML’ de veri ayrışımı gerçekleştirmek daha zordur.

REST, REST API

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 yardımıyla Rest işlemleri ve veri alışverişi yapılıyor.

Yöntemler

Geliştiriciler, RESTful API’leri genellikle Köprü Metin Aktarım Protokolü’nü (HTTP) kullanarak uygular. Bir HTTP yöntemi, sunucuya kaynağa ne yapması gerektiğini söyler. Başlıca dört HTTP yöntemi şunlardır:

GET

İstemciler, sunucuda belirtilen URL’de yer alan kaynaklara erişmek için GET isteğini kullanır. İstemciler, GET isteklerini önbelleğe alabilir ve sunucuya verileri göndermeden önce filtreleme talimatı vermek için RESTful API isteğinde parametreler gönderebilir.

POST

İstemciler, verileri sunucuya göndermek için POST isteğini kullanır. Veri gösterimini de isteğe dahil ederler. Aynı POST isteğini birden fazla kez göndermek, aynı kaynağın birden fazla kez oluşturulmasına neden olur.

PUT

İstemciler, sunucudaki mevcut kaynakları güncellemek için PUT yöntemini kullanır. POST’un aksine, RESTful web hizmetinde aynı PUT isteğini birden fazla kez göndermek aynı sonucu doğurur.

DELETE

İstemciler, kaynağı kaldırmak için DELETE isteğini kullanır. Bir DELETE isteği, sunucunun durumunu değiştirebilir. Bununla birlikte, kullanıcı uygun kimlik doğrulamasına sahip değilse istek başarısız olur.

REST vs SOAP

Güvenlik

SOAP üzerinde güvenlik(security) sağlamak daha kolay ve hızlı şekilde olabiliyorken, bu durum REST için karmaşık olabiliyor. REST için güvenlik söz konusu olduğunda SOAP’a göre biraz zayıf kalmaktadır.

Data Yapısı

REST ile JSON, XML hatta TEXT ile çalışabiliyorken, SOAP ile XML kullanmalıyız. REST bu sayede daha kullanışlı olabiliyor. JSON ile daha küçük boyutlarda verilerle işlemler gerçekleştirebiliyorsunuz. Eğer data boyutları uygulamanız için önem arz ediyorsa REST kullanmak sizin için uygun olacaktır.

Uygulama Hızı

Uygulamanızın daha hızlı çalışmasını istiyorsanız REST kullanmanız yararınıza olacaktır.

Destek

SOAP için geliştirici araçları daha iyidir. Kullanmamız için bize yardımcı olacak daha çok kaynak bulabiliriz. REST’in dökümantasyonu SOAP’a göre daha azdır.

REST yaklaşımı HTTP metotlarını kullanarak işlerini görür. GET,POST,PUT,DELETE vs.

SOAP servisleri RPC(Remote Process Call yani uzaktaki bir prosedürün çağrılması) çalışma yöntemini kullanır, WS-* gibi güvenlik protokollerini içerisinde barındırır, state bilgisini request ve response’larda saklar.

REST mimarisi SOAP’a göre oldukça esnektir ve hafiftir, taşınan veri miktarı daha azdır, entegrasyonu da daha kolaydır.

SOAP ile ilgili yazıma buraya tıklayarak ulaşabilirsiniz.

Bu yazımda bir çok web sitesinden faydalandım bunlar;

https://www.hosting.com.tr/bilgi-bankasi/rest-api/

--

--