REST API ne demek?
REST API, farklı yazılımların internet üzerinden birbiriyle konuşmasını sağlayan bir arayüz tasarım yaklaşımıdır. REST, "Representational State Transfer" ifadesinin kısaltmasıdır ve bir protokol değil, bir mimari yaklaşımdır. API ise iki uygulamanın belirli kurallar çerçevesinde veri alışverişi yapmasını sağlayan arayüzdür. REST kurallarına uygun şekilde tasarlanmış bir API'ye genel olarak REST API ya da RESTful API denir.
Bu yaklaşımın temel fikri sadedir: Sistemdeki her şey bir kaynak olarak ele alınır ve bu kaynaklara standart, öngörülebilir bir biçimde erişilir. Böylece farklı ekiplerin geliştirdiği sistemler ortak bir dilde anlaşabilir.
HTTP üzerinden çalışması
REST API, web tarayıcılarının da kullandığı HTTP protokolü üzerinden çalışır. İşlemler, HTTP metotlarıyla ifade edilir:
- GET: Bir kaynağı okur, veri getirir.
- POST: Yeni bir kaynak oluşturur.
- PUT veya PATCH: Var olan bir kaynağı günceller.
- DELETE: Bir kaynağı siler.
Bu metotların ayrı ayrı tanımlı olması, isteğin amacını net hâle getirir. Örneğin aynı adrese GET isteği veri okurken, DELETE isteği aynı veriyi silmeye yöneliktir.
Kaynak ve uç nokta kavramı
REST'te veriler kaynak olarak adlandırılır; bir müşteri kaydı, bir fatura ya da bir kullanıcı birer kaynaktır. Her kaynağa, uç nokta (endpoint) denilen bir adres üzerinden erişilir. Uç noktalar genellikle kaynağın ne olduğunu açıkça yansıtacak biçimde tasarlanır; örneğin müşterilerle ilgili bir adres, müşteri kaynağına işaret eder. Bu düzenli yapı, API'yi kullanan geliştiricinin hangi adresin neye karşılık geldiğini kolayca tahmin etmesine yardımcı olur.
JSON ile veri taşıma
REST API'lerde istek ve yanıt verileri çoğunlukla JSON biçiminde taşınır. JSON, hem insanların okuyabileceği hem de yazılımların kolayca işleyebileceği, anahtar-değer çiftlerine dayalı sade bir veri biçimidir. Örneğin bir müşteri kaydı; ad, e-posta ve kayıt tarihi gibi alanları JSON içinde taşıyabilir. JSON'un yaygın olması, farklı programlama dillerinde yazılmış sistemlerin aynı veriyi sorunsuz anlamasını kolaylaştırır.
API ile ilişkisi
Her REST API bir API'dir; ancak her API REST kurallarına uymak zorunda değildir. API, genel bir kavramdır ve birçok farklı tarzda tasarlanabilir. REST ise bu tasarımları belirli ilkelere bağlayan bir yaklaşımdır: kaynak temelli adresleme, standart HTTP metotları ve durumsuz (stateless) iletişim gibi. Bu ilkeler, API'yi daha öngörülebilir ve sürdürülebilir kılar.
Basit bir örnek senaryo
Bir işletmenin sahadaki ekibi, müşteri bilgilerini bir mobil uygulamadan görüntülemek istesin. Mobil uygulama, sunucudaki müşteri kaynağına bir GET isteği gönderir; sunucu da ilgili müşteri kaydını JSON biçiminde geri döndürür. Yeni bir müşteri eklenmek istendiğinde aynı adrese POST isteğiyle JSON verisi gönderilir. Bu döngü, farklı sistemlerin tek bir entegrasyon dili üzerinden çalışmasını sağlar.
VexCore Teknoloji A.Ş.; kamu, yerel yönetim ve özel sektör için sistem entegrasyonu ve kuruma özel geliştirme projelerinde REST API tabanlı arayüzleri değerlendirir. Mevcut sistemler arasında veri akışının daha düzenli ve izlenebilir hâle getirilmesi, pilot/PoC çalışmalarıyla kurum ihtiyacına göre planlanabilir.