REST (Representational State Transfer), modern web uygulamalarında sıklıkla kullanılan bir mimaridir. REST, web servislerinin kaynaklarını ve HTTP protokolünü kullanarak bu kaynaklara erişimini standartlaştırır. Bu sayede, farklı programlama dilleri veya platformlar arasında kaynaklara erişim sağlamak kolay hale gelir.
RESTful API ise, REST prensiplerini takip ederek tasarlanmış bir API’dir. RESTful API, HTTP protokolü üzerinden sunulan bir web servisidir ve kaynakların (resource) ve bunların durumlarının (state) temsil edilmesini sağlar. Bu sayede, web servisine erişmek için sadece URL (Uniform Resource Locator) kullanılır.
RESTful API’ler, CRUD (Create, Read, Update, Delete) işlemlerini gerçekleştirmek için HTTP metodlarını kullanır. Bu metodlar şunlardır:
- GET: Kayıtlı veriyi veya verileri okumak/çekmek için kullanılır.
- POST: Veri kayıt etmek yada bir olayı gerçekleştirmek (Şifremi unuttum, şifre sıfırlama, login vb. ) için kullanılır.
- PUT: Kayıtlı veri güncelleme için kullanılır.
- DELETE: Kayıtlı veriyi silmek için kullanılır.
Bununla birlikte, RESTful API’lerin uyması gereken bazı prensipler de vardır:
- Client-Server: İstemci (client) ve sunucu (server) birbirinden bağımsızdır. İstemci, sunucu hakkında hiçbir bilgiye sahip değildir ve sadece sunucuda bulunan kayıtlara hakkında istekte bulunur.
- Stateless: Her istek tamamen bağımsızdır. İstemci sunucuyla bağlantı kurar, işlemi tamamlar ve bağlantıyı kapatır. Sunucu her isteği ayrı ayrı işler ve işlemin sonunda herhangi bir durum bilgisi saklamaz.
- Cacheable: Sunucu, yanıtların cache edilmesine olanak tanımalıdır. Bu, istemcinin, daha önce eriştiği bir kaynağa yeniden erişmek istediğinde daha hızlı bir yanıt almasına olanak tanır.
- Uniform Interface: API, kaynaklara erişim için standart bir arayüz sunmalıdır. Bu, kaynakların tanımlanması, kaynaklara erişmek için HTTP metodlarının kullanılması ve kaynakların durumlarının tanımlanması gibi özellikleri içerir.
- Layered System: Sunucu, katmanlı bir yapıya sahip olmalıdır. Bu, sunucunun, işlem yaparken farklı katmanlardan geçebilmesine olanak tanır.
Restful API, birçok avantajı nedeniyle sıklıkla kullanılan bir API türüdür. Bunlar arasında standartlaştırma, platform bağımsızlığı, performans, güvenlik ve ölçeklenebilirlik sayılabilir.
Sonuç olarak RESTful API, modern web uygulamalarında önemli bir teknolojidir. Geliştiriciler, REST ilkelerini izleyerek, erişimi kolay ve farklı programlama dilleri ve platformları ile iletişim kurabilen web hizmetleri oluşturabilirler.
NodeJS ile yazılmış örnek RESTful örnekerine https://github.com/ismetkizgin/nodejs-restful-example-projects github linki üzerinden ulaşabilirsiniz.
