Restful Web Service Nedir?

Merhaba arkadaşlar, bu yazımda size resful web servislerden yani kısaca rest servislerden bahsedeceğim. Rest servisler tüm bilgilerin kendilerine has birer adrese yani URI(Uniform Resource Idetifier)’e sahip olmasını öngören mimari yaklaşımdır. Tanım oldukça anlamsız geliyor değil mi? Biraz daha açalım öyleyse, rest servisler birer url üzerinden çalışırlar ve bu urller benzersizdir aynı ID gibi. İstemci ve sunucu arasındaki iletişim stateless bir protokol üzerinden (genellikle HTTP) sağlanır.

Restful servislerin Java dünyasındaki standartlarını oluşturan JAX-RS spesifikasyonudur. İlk servislerimi jax-rs standart API ‘i ile yazmıştım. Ancak Spring kullanan arkadaşlara bir tavsiyem Apache CXF kullanmaları yönünde. Farklı servislerden bahsedecek olursak;

  • Jersey: GlassFish grubu tarafından geliştirilmektedir.
  • Apache CXF: Hem SOAP hem de rest servis geliştirmek isteyenler için ideal bir çözüm olacaktır, Spring için CDI uyumluluğu olması yönünden oldukça rahat kullanılabilir.
  • RestEASY: Redhat grubu tarafından geliştirilmektedir. Seam kullanımı için idealdir.
  • Restlet: Jersey ‘den farklı yanı olarak nesneleri serileştirmek için Xstream ve Jackson kullanıyor.

Rest servisler son zamanlarda web ve mobil uygulama geliştirirken oldukça popüler hale geldi. Front-end katmanında Javascript kütüphaneleriyle birlikte kullanıldığında hız bakımından sizi inanılmaz derecede rahatlatıyor. Bir istek ya da veri tabanına veri işlemek için sadece http isteklerinin kullanılması, sayfaların tekrar tekrar gereksiz olarak yeniden yüklenmesini engelliyor. Bu sayede sistem oldukça hızlı bir şekilde çalışıyor.

Restful servisler genel olarak sunucuyla haberleşmek için JSON kullanıyor. Peki bu bize ne sağlıyor? Bu bize, servis katmanının platformdan bağımsız olmasını sağlıyor. Yani bir yandan html kullanırken bir yandan PHP kullanabilir ya da bir adım öteye giderek bir yandan da IOS ve Android uygulamalarda kullanılabiliyor.

Rest servisleri 4 temel http isteğini kullanmaktadır.

  • GET: Genellikle veri ya da veri listelerini getirmek için kullanılır.
  • POST: Veri tabanına yeni bir kayıt eklemek için kullanılır.
  • PUT: Veri tabanındaki verileri güncellemek için kullanılır.
  • DELETE: Veri tabanındaki verileri silmek için kullanılır.

EOC(End Of Code)