RESTful Web Servisler

Günümüzde kullanılan yazılım sistemleri birçok gereksinim nedeniyle birbirleri ile iletişim kurmak ve aralarında çeşitli veri transferleri gerçekleştirmek durumundadır. Dağıtık sistemlerin artması ve sistemler arasında entegrasyonlara ihtiyaç duyulması “Web Servis” kavramını oluşturmuş ve gelişimine sebep olmuştur. Kısaca Web Servisler farklı yazılım sistemlerinin birbirleri ile konuşabilmesini sağlayan protokolleri/kuralları temsil eder ve bu protokolleri/kuralları sağlayan yazılımlar web servis yazılımları olarak adlandırılır.

REST, dağıtık mimari uygulamaları oluşturmak için geliştirilen veri transfer yönetimi ve kurallar bütünüdür. İsmi Representational State Transfer olan bu ifade Türkçe olarak “Temsili Durum Transferi” olarak geçer. HTTP üzerinde çalışır ve diğer alternatiflere göre daha yalındır. Temel içerik ile veri transferi gerçekleştirildiğinden hız açısından alternatiflerinden çok daha verimlidir.  İstemci ve sunucu arasında XML veya JSON verilerini taşıyarak uygulamaların haberleşmesini sağlar. REST standartlarına uygun yazılan web servislerine RESTful servisler denir.

REST durum bilgisi barındırmaz. Sunucu üzerinde istemcilere ait durum veya içerik bilgisi bulunmaz, bir önceki istekleri ve durumları önemsizdir. Aynı adrese aynı parametreler ve aynı metotlar ile gelen tüm isteklere aynı yanıtın gönderilmesi amaçlanır. Bu uygulamaların daha esnek ve kolay olmasını sağlar. REST standartlarında istemci-sunucu arasında taşınan verilerde ek başlık bilgileri saklanmaz, istemciye ait detaylar bulunmaz, bu bilgiler istemci-sunucu arasında taşınmaz. Bu durum da beraberinde hız avantajını getirir. Dolayısıyla servis yönelimli uygulamalarda REST daha hafif ve esnek çözümler sunar. REST mimarideki Stateless kavramını kısaca bu şekilde tanımlayabiliriz.

REST servisler doğrudan bir URL çağrılarak çalışır ve kaynaklara (Resources) erişir. Arada ek bir bileşen, yöntem veya protokol kullanılmaz. SOAP gibi bir servisi uygulamanıza dahil edebilmeniz için servisin WSDL’ına ihtiyaç duyarsınız, proxy sınıfları oluşturmanız gerekir, uzaktaki metotları tetikleyecek bileşenlere ihtiyaç vardır. İstemci, SOAP bir servisle ilgili her şeyi bilmek zorundadır, belirli standartları yerine getirilmeden SOAP bir servisi çağıramaz. Ancak REST ile yazılmış bir servisle çalışmak için ihtiyacınız olan tek şey URL. Bir URL’yi çağırırsınız, URL size JSON veya XML döner, dönen cevabı kullanırsınız ve servis entegrasyon tamamlanır. Yani teorik olarak istemci uygulama REST bir servisin yapısını ve detaylarını bilmek zorunda değildir. REST’in bu basit standartları dışında uyulması gereken bir kural yoktur, son derece esnek bir yapı vardır.

RESTful servisler veri iletiminde farklı HTTP metotlarını kullanmaktadır. Bunlar GET, POST, PUT, DELETE metotlarıdır. GET okuma, POST yeni kayıt ekleme(insert), PUT kayıt güncelleme(Update), DELETE ise kayıt silme işlemi için kullanılır. Yapılan HTTP Request’i için çağrılan URL ile beraber HTTP metod bilgisi bahsi geçen 4 metottan biri olarak seçilir ve sunucu yapılan talebin kayıt üzerine nasıl etki edeceğini buna göre belirler.

Basit yapısı, kolay uygulanması, hızlı çalışması, esnek olması RESTful servislerin artı yönleridir. RESTful servislerinin bazı eksi yönleri de var bulunmaktadır. Güvenlik bunlardan biri olmakla beraber SOAP servislerde standartlar gereği birçok güvenlik mekanizması otomatik olarak oluşturulabilirken RESTful servislerde güvenlik konuları geliştirilen yazılımın bir parçasıdır. İletişim seviyesinde güvenlik(Transport Level Security) genellikle token aracılığıyla yapılır. İstemci kritik işlemleri çağırmadan önce bir “Giriş” isteği gönderir. Bu istek sonucunda istemciye “Sessin Token” vb. bir değer verilir ve bundan sonra yapacağı istekler bu değer ile yapılır. Mesaj seviyesinde güvenlik(Message Level Security) konusu da yine geliştirilen yazılımların içerisinde dikkat edilmesi gereken önemli bir konudur. Üçüncü parti araçlar kullanılarak hem iletişim hem de mesaj seviyesinde gerekli güvenlik fonksiyonları geliştirilen yazılımlara rahatlıkla uygulanabilir.

 

Önceki İçerikERP Alırken Kimlere Sorulmalı?
Sonraki İçerikDoğru MES uygulamasını seçmek
Fırat Üniversitesi Yazılım Mühendisliği bölümünden mezun oldum. Lisans eğitimimi tamamladıktan sonra 3 dönem staj yapmış olduğum Mert Yazılım bünyesinde profesyonel iş yaşantıma başladım. 2019 yılı itibarıyla sektörde 1 yılı Millî Savunma Bakanlığı Askeralma Genel Müdürlüğü-Veri Proje Dairesi’nde yedek subay olarak mesleğimi icra etmek suretiyle 4 yıllık bir tecrübeye sahibim. Mert Yazılım bünyesinde Yazılım Mühendisi-Yazılım Geliştirme Uzmanı olarak görev yapmaktayım. Veri uygulamaları, elektronik haberleşme ve farklı sistemler arasında entegrasyon uygulamaları geliştirmekteyim. Şirketimizde Elektronik Ar-Ge departmanımız ile birlikte endüstriyel IoT projeleri başta olmak üzere çeşitli Ar-Ge projelerinde yer almaktayım. Kamp, dağ-doğa yürüyüşleri ve yüzme sporları ile ilgilenmekte olup sıkı bir Samsunspor taraftarıyım.

CEVAP VER

Yorumunuzu yazınız
Lütfen isminizi giriniz