Rest API Nedir? Neden Önemlidir?
API (Application Programming Interface), Türkçe anlamıyla “Uygulama Programlama Arayüzü” olarak ifade edilir. API, bir yazılım aracının bir başka yazılım aracı ile örneğin bir sunucu ile iletişim kurabilmesi ya da veri aktarımı yapabilmesini sağlar. Günlük hayattan örnekler vermek gerekirse bir web sayfasından hava durumu ya da finansal bilgileri kontrol ettiğimizde ya da bir mesajlaşma uygulamasında mesajlarımızı görüntülediğimizde bu işlemleri yapabilmek için her seferinde bir API kullanırız. Uygulamalar ve çeşitli hizmet sağlayıcılar bu API’leri önceden hazırlayıp paylaşabilirler. Bu şekilde hazır API’ler aracılığı ile daha önce geliştirilmiş altyapılar kullanılır ve her seferinde bir altyapı oluşturmak zorunda kalmadan veri alışverişi yapılabilir. Kullanıcıların etkileşim halinde olduğu arayüzler UI (User Interface) yazılımlar için tasarlanmıştır ve kullanıcılara yönelik arayüzlerdir. En fazla kullanıcıya sahip API türlerinden biri olan Rest API’ye ait tüm detaylar ve çalışma metodları hakkında daha fazla bilgi için yazımızın devamını okuyabilirsin.
API Türleri ve Rest API Özellikleri
API’ler ise yazılımcılar için tasarlanmış arayüzler olarak düşünülebilir. API’ler kullandığı protokollere,kullanıcı türlerine ve mimarilerine göre farklı türlerdedir. Bazı API çeşitleri:
- Public API
- Private API
- Partner API
- Rest API açılımı, Temsili Durum Aktarımı anlamına gelen Representational State Transfer’dir.
- SOAP (Simple Object Access Protocol) olarak sıralanabilir. Rest API servisleri genellikle HTTP protokolünü kullanırlar. URI (Uniform Resource Identifier) adresleri aracılığı ile veri tabanlarına erişebilirler. Rest API’lerin en önemli özelliklerinden biri HTTP request türlerinden olan GET, POST, PUT, PATCH, DELETE istek komutları ile veri aktarımlarını sağlamasıdır.
Rest API’ler Nasıl Çalışır?
API’ler pek çok tanımı ve protokolü içerirler. Bilgileri içeren sunucu, kullanıcıya, uygulama geliştirme ve çeşitli entegrasyonları yapabilmek için API’ler aracılığı ile bilgi akışı sağlar. API’ler yanıtı gönderen sunucudan gelen bilgi içeriğini istemcinin kullanabileceği şekilde belirterek aradaki iletişimin kurulmasına yardımcı olur. Programlar farklı sunuculara sahip veri sağlayıcıları ile iletişim kurmak, bilgi almak ya da bir özelliğin eklenmesi gibi çalışmaları yapabilmek için API’leri kullanırlar. API’ler kullanıcıların bu protokollere uygun olarak çalışmaları ve istedikleri sonuca ulaşmaları için geliştirilmiştir. En kısa özet ile bir API, kullanıcı ve kaynak arasında aracı işlevi görür. Kullanıcılar bir client (istemci) türü olabilir, kaynaklar ise bir server (sunucu) türü olabilir.
Farklı uygulama ve projelerde sık sık tercih edilen API’lerden biri olan Rest API’lerin de çalışma mantığını doğru anlamak geliştiriciler için oldukça önemlidir. Resim, video, metin gibi farklı veri türleri, Rest kaynaklarından kabul edilir. Bir istemci bir URL’i ziyaret eder ve yanıt alabilmek için sunucuya bir istek gönderir. Bir istek yani ulaşılan URL genellikle 4 farklı bileşen içerir:
- URL’e ait bir uç nokta olan “root-endpoint”,
- Beş farklı request metodundan biri (GET, POST, PUT, PATCH, DELETE),
- Kimlik doğrulama ve header (gövde içeriği) bilgileri,
- Data ya da body, yani POST, PUT, PATCH veya DELETE istekleri ile sunucuya gönderilen istek içerikleridir.
HTTP isteklerinden olan GET, POST, PUT, PATCH, DELETE metotlarının her biri sunucular ile farklı veri aktarımları sağlar. Örneğin; sunucuda bir veriyi silmek için DELETE isteği gönderilir. GET metodu, sunucuda bulunan bir belge ya da resim benzeri kaynakların okunması veya alınması gibi istekler için kullanılır. Kayıtların güncellenebilmesi için de PUT ve PATCH metodları kullanılır. Bu işlemler CRUD olarak da ifade edilen dört ana işlemi temsil eder ve okuma, yazma, silme ve güncelleme olarak açıklanabilir. Ayrıca sunucular verileri istemciye farklı formatlar aracılığı ile gönderebilir. Bunlar genellikle JSON, XLT, PHP, Python, HTML ve düz metin olarak gönderebilirler.
Restful olarak da adlandırılan mimarinin programlamada kullanılması projeye farklı özellikler katabilir. Bu mimari de yazılım ürünleri geliştirirken SOAP ya da XML-RPC gibi API’lerin esnek olmayan yapıları yerine Rest API tercih edilir. Bu sayede, yapılan işe ölçeklenebilirlik, esneklik, bağımsızlık ve hızlı adaptasyon gibi özellikler eklenmiş olur.
Rest API tercih ederken bilinmesi gereken bazı özellikler vardır. Bunlardan biri uç noktaların ve sunucuların sağlıklı çalışabilmesi ve uyumluluk sorunlarının giderilebilmesi için sık sık uygulama güncellemelerinin takip edilmesi gerekir. Güncellemeler zamanında yapılması ekstra bir iş yükü oluşturabilir. Çok sayıda kimlik doğrulama ve yetkilendirme yöntemi içermesi nedeniyle ilk API çağrısını oluşturmak zorlaşabilir. Ayrıca bazı projelerde sunucular, gereksiz olabilecek veriler ile birlikte bir cevap gönderebilir ya da ihtiyacın olan bilgileri alabilmek için birden fazla sorgu yapman gerekebilir.
Rest API Özellikleri ve Avantajları
Rest API kullanımı ve Rest mimarinin çalışmalara çok sayıda katkısı vardır. Bunlardan bazıları bir düzen oluşturulabilmesini de sağlayan kurallar ve kısıtlar olabilir. Temelde Rest mimarisini kullanmanın bazı avantajları şunlardır:
- Tutarlı bir kulanıcı arayüzü oluşturulmasını sağlar. Sunucuya gönderilen isteklerin, ve bilgilerin tek tip olması gerekir. Bu amaç ile URI (Universal Resource Identifier) yani tek tip kaynak tanımları kullanılır. Sunucuya atılan istekler ya da gönderilen e-posta, şifre gibi giriş bilgileri tek tiptir.
- İstemci ve sunucu arasında iletişim kurulması gereken uygulamalarda farklı bir yaklaşım benimsenir. Suucu ve istemci birbirinden bağımsız çalışabilir. Örneğin; istemci talep ettiği kaynağın URI’sine sahiptir. Böylece sunucu ile başka herhangi bir iletişim kurmaya ihtiyacı yoktur. Ayrıca sunucu da istemciyi ve istemciye bağlı yazılımı etkileyemez. Gerekli veriler HTTP aracılığı ile gönderilebilir. Bu sayede herhangi bir zamanda sunucuyu etkilemeden istemci yazılımlarını dilediğin gibi değiştirebilirsin.
- Rest tabanlı sistemlerde durum bilgisi istemci ve sunucu arasında paylaşılmaz. Bu kısıt sayesinde sunucu ve istemci daha önceki mesajları görmemiş olsalar dahi daha sonra gönderilen mesajları alırlar. Sistemin tamamı etkilenmeden sorunlar bileşenler özelinde parça parça kontrol edilebilir ve çözülebilir. Çalışmalar daha hızlı, istikrarlı ve ölçeklenebilir olarak kesintiye uğramadan devam eder.
- REST sayesinde mümkün olan her an istemci ve sunucu tarafında önbelleğe alma işlemleri yapılır. Verilerin ve sunucudan gelen yanıtların ön belleğe alınması günümüzde oldukça kritik bir öneme sahiptir. Bilgilerin önbellekte depolanması sayesinde istemci tarafında ciddi ölçüde performans iyileştirmeleri sağlanabilir. Ayrıca önbelleğin iyi yönetilmesi istemci ile sunucu iletişimini zaman zaman azaltabilir. Bu sayede kullanıcı tarafında yanı UI (User Interface) tarafında da performans farkedilir ölçüde iyileşebilir. Sayfa yükleme hızı artar ya da daha önce yüklenmiş bir içeriğe internet bağlantısı olmasa bile erişilebilmesini sağlar.
Rest API Kullanım Alanları
Rest API kullanımı, çeşitli kullanıcıları ve birbirinden farklı cihazları kapsayabilmeleri sayesinde kısa sürede artırmıştır. Peki REST API'lerinin kullanım alanlarını merak ediyor musun? Bu alanlar, Web, Cloud App ve Cloud Computing olarak 3 ana başlıkta toplanabilir. Web Projeleri, IOS Uygulamaları, Windows Phone Uygulamaları, IoT Cihazlar yaygın kullanım alanlarıdır. Ayrıca herhangi bir kesinti durumunda ya da olası problem anlarında istemci ve sunucunun birbirinden etkilenmemesini sağladığı için Cloud projelerinde de oldukça kullanışlıdır. Bulut uygulamalarda bu nedenle sık sık tercih edilir. Aynı zamanda sunduğu avantajlar ile bulut bilişim projelerinde de oldukça önemli bir yere sahiptir. Bulut teknolojileri ve mikro servisler için çok sayıda avantaja sahip bir API çeşidi olan Rest API’ler hakkında daha fazla bilgi edinmek ve kendini geliştirmek için sen de Techcareer Bootcamp eğitimlerine göz atabilirsin.