Mobile ve 3rd party uygulamalar ile veri alışverişinin yapıldığı RESTful servislerin arayüzüdür.
RESTful API, iki bilgisayar sisteminin internet üzerinden güvenli bir şekilde bilgi alışverişi yapmak için kullandığı bir arabirimdir. Çoğu iş uygulaması, çeşitli görevleri gerçekleştirmek için diğer dahili ve üçüncü taraf uygulamalarla iletişim kurmak zorundadır. Örneğin, aylık olarak maaş bordroları oluştururken faturalandırmayı otomatik hale getirmek ve dahili bir zaman çizelgesi uygulamasıyla iletişimde olmak için dahili hesap sisteminizin, verileri müşterinin bankacılık sistemiyle paylaşması gerekir. RESTful API'ler; güvenli, güvenilir ve verimli yazılım iletişim standartlarını izlediğinden bu bilgi alışverişini destekler.
Uygulama programlama arabirimi (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. Örneğin, zaman çizelgesi uygulaması, bir çalışanın tam adını ve bir tarih aralığını soran bir API sunar. Uygulama, bu bilgileri aldıktan sonra çalışanın zaman çizelgesini dahili olarak işler ve söz konusu tarih aralığında tamamlanan çalışma saatlerini bildirir.
Temsili Durum Aktarımı (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 tabanlı mimariyi yüksek performanslı ve güvenilir iletişimi doğru ölçekte desteklemek için kullanabilirsiniz. Bu mimariyi kolayca uygulayabilir, değiştirebilir ve böylece, herhangi bir API sistemine görünürlük ve platformlar arası taşınabilirlik sağlayabilirsiniz.
API geliştiricileri, birkaç farklı mimariyi kullanarak API'ler tasarlayabilir. REST mimari stiline uygun API'lere REST API'ler adı verilir. REST mimarisini uygulayan web hizmetlerine RESTful web hizmetleri adı verilir. RESTful API terimi genellikle RESTful web API'lerini ifade eder. Bununla birlikte, REST API ve RESTful API terimlerini birbirinin yerine kullanabilirsiniz.
Tek biçimli arabirim, herhangi bir RESTful web hizmetinin tasarımı için esastır. Sunucunun, bilgileri standart bir formatta aktardığını belirtir. Biçimlendirilen kaynağa REST'te gösterim adı verilir. Bu format, kaynağın sunucu uygulamasındaki dahili gösteriminden farklı olabilir. Örneğin, sunucu, verileri metin olarak saklarken HTML gösterim formatında gönderebilir.
Kısıtlamaları nelerdir ?
REST mimarisinde durumsuzluk, sunucunun her istemci isteğini önceki tüm isteklerden bağımsız olarak tamamladığı bir iletişim yöntemini ifade eder. İstemciler, kaynakları istedikleri sırada talep edebilir ve her istek ya durumsuzdur ya da diğer isteklerden yalıtılmıştır. Bu REST API tasarımı kısıtlaması, sunucunun isteği her seferinde tam olarak anlayabileceği ve yerine getirebileceği anlamına gelir.
Katmanlı bir sistem mimarisinde istemci, kendisiyle sunucu arasındaki diğer yetkili aracılara bağlanabilir ve sunucudan yanıt almaya devam edebilir. Sunucular, istekleri diğer sunuculara da aktarabilir. RESTful web hizmetinizi, istemci isteklerini yerine getirmek için birlikte çalışan güvenlik, uygulama ve iş mantığı gibi birden çok katmana sahip birkaç sunucuda çalışacak şekilde tasarlayabilirsiniz. Bu katmanlar, istemci tarafından görülmez.
RESTful web hizmetleri, sunucu yanıt süresini iyileştirmek için bazı yanıtları istemcide veya bir aracıda saklama süreci olan önbelleğe almayı destekler. Her sayfada ortak üst bilgi ve alt bilgi görüntüleri olan bir web sitesini ziyaret ettiğinizi varsayalım. Yeni bir web sitesi sayfasını her ziyaret ettiğinizde, sunucunun aynı görüntüleri yeniden göndermesi gerekir. Bunu önlemek için istemci, ilk yanıttan sonra bu görüntüleri önbelleğe alır veya depolar ve ardından görüntüleri doğrudan önbellekten kullanır. RESTful web hizmetleri, önbelleğe alma sürecini kendilerini önbelleğe alınabilir veya önbelleğe alınamaz olarak tanımlayan API yanıtlarını kullanarak kontrol eder.
REST mimari stilinde sunucular, yazılım programlama kodunu istemciye aktararak istemci işlevselliğini geçici olarak uzatabilir veya özelleştirebilir. Örneğin, herhangi bir web sitesindeki bir kayıt formunu doldurduğunuzda, tarayıcınız yaptığınız hataları (örn. yanlış telefon numarası) hemen öne çıkarır. Tarayıcınız bunu, sunucu tarafından gönderilen kod sayesinde yapar.