Merhabalar arkadaşlar. Bu yazı ile yeni bir yazı dizisine başlamış oluyoruz. Sizlerle bir süre boyunca Web Servis üzerinde gideceğiz ve bu yazı dizisi boyunca JBoss’un Restful Web Servis için üretilmiş olan RestEasy kütüphanesi ile Restful Web Servis öğreniyor olacağız. Başlayalım :)

Web Servis Nedir?

Arkadaşlar Web Servis günümüz dünyasında ister farklı ister ister aynı programlama dili ile yazılmış olsun sistemlerin birbirleri ile haberleşebilmesi, konuşabilmesi için oluşturulmuş temelde HTTP üzerinde çalışan bir teknolojidir. Şöyle düşünelim, sizin bir şirketiniz var ve geliştirmelerinizi Java teknolojileri ile yapıyorsunuz. Birlikte çalışacağınız ve verilerinizi paylaşacağınız, veri alacağınız bir şirket var ancak o da .NET çatısı ile işlerini görüyor. İşte bu durumda kullandıkları platformlar farklı olmasına rağmen bu iki şirketin veri alışverişinde bulunabilmesini sağlayan teknoloji web servistir.

Günümüzde web servis için 2 adet bilindik yaklaşım bulunmakta. Bunlar REST ve SOAP.

SOAP:

Açılımı Simple Access Protocol olan bu yaklaşımda verileri HTTP protokolü üzerinden taşır ve bunun yanında TCP gibi başka protokoller de kullanılabilinir. REST yaklaşımında herhangi ilave bir tanımlama, protokole ihtiyaç duyulmazken SOAP adından anlıyacağınız üzere bir protokoldür ve Remote Procedure Call (RPC) modelini kullanır. SOAP kullanmak isterseniz verileri XML ile taşımak zorundasınız. SOAP mimarisinde veriler sadece XML ile taşındığından burada bir de WSDL adında bir yapı vardır. SOAP için güvenlik söz konusu olduğunda çok sayıda hazır yapı vardır ve entegrasyonu kolaydır. Dökümantasyon bakımından da SOAP’ın REST’den daha önde olduğu söylenebilir.

REST:

Açılımı Representational State Transfer olan bu yaklaşımda da verilerin HTTP protokolü üzerinden taşınması hedeflenir ve SOAP gibi alternatif protokol yoktur. REST yaklaşımında veri taşınırken XML, JSON ya da Text formatı bile kullanılabilinir. Bu nedenle SOAP’ın WSDL’i gibi bir yapıya ihtiyaç yoktur. Her ne kadar JSON yanında XML vs. de kullanılabilse de bana yaygın olarak JSON kullanılıyor gibi geldi. REST mimarisi SOAP’a göre oldukça esnektir ve hafiftir, taşınan veri miktarı daha azdır. Öte yandan entegrasyonu da daha kolaydır. REST yaklaşımı HTTP metotlarını kullanarak işlerini görür. GET,POST,PUT,DELETE vs. REST için güvenlik söz konusu olduğunda SOAP’a göre biraz zayıf kalmaktadır. Dökümantasyonu SOAP’a göre daha azdır. REST mimarisini kullanan web servisler Restful Web Service olarak adlandırılırlar.

Neden RestEasy Öğreneceğim/Anlatacağım?

Java EE API’si içerisinde Restful Web Sevice’in resmi implementasyonu olarak Jersey gösterilmekte. Lakin Jersey 2.0 dan sonra açıkçası ne dökümantasyonunu ne de kullanımını beğendim arkadaşlar. Ayrıca kendilerinin gidip de Glassfish ailesine katılması bende onlara karşı bir antipati oluşturdu. Bu nedenle alternatif Restful Web Servis implementasyonlarına baktım ve hem arkasında JBoss gibi bir community’nin olması hem de bana hoş gelmesi nedeni ile RestEasy’de karar kıldım.

Bu yazıda web servisin ne olduğundan ve 2 bilindik yaklaşımından bahsettik arkadaşlar. Sıkıcı bir yazı olmaması için özet bilgi şeklinde yazdım. Gelecek yazıda RestEasy kullanmak için yapmamız gereken hazırlıktan bahsedeceğim arkadaşlar. Görüşene kadar sağlıcakla kalın.