Bu yazımızda kendi rest servislerimizi java ile nasıl kodlayacağımızı öğreneceğiz.İlk projemiz olduğu için herşeyi göstermek istiyorum.
Java da iki tür web servis bulunur.
1)JAX-RS (JAVA API FOR RESTful SERVICES)
2)JAX-WS(JAVA API FOR XML WEB SERVICES)
Bizler RESTful web servisleri yazacağızBu servislerimiz yazarken kullanabileceğimiz kütüphaneler ise
1)Jersey
2)RESTEasy
3)ApacheCXF
4)Restlet
Bizler rest servislerimizi yazarken Jersey kütüphanesinden faydalanacağız.İleride diğer kütüphaneleri de kullanıp hangisinin nerede daha avantajlı olduğuna hep birlikte karar vereceğiz.Hadi başlayalım.
Projelerimizi Apache Maven kullanarak yazacağız.İleride birçok kütüphane kullanacağız ve bu kütüphaneleri tek tek indirip projemize jar dosyası olarak eklemek yerine, eklemek istediğimiz kütühanenin bağımlılığını (dependencies)
buradan bulup pom.xml dosyasına ekleyeceğiz .Maven bu kütüphaneleri projemize ekleyecek.Daha sonra bir web servisi yazdığımız için bir server'a ihtiyacımız var.Herhangi bir local server işinizi görecektir.Ben payara server kullanıyorum.Ben projelerimi NetBeans üzerinde geliştiriyorum.Sizler Eclipse,Intellij,NetBeans veya dilediğiniz bir IDE üzerinde geliştirebilirsiniz.
İlk olarak bir maven web application oluşturuyoruz.
Projemize isim verip hangi server üzerinde çalışacağını belirledikten sonra projemizi oluşturmuş oluyoruz.
Daha sonra Project Files klasöründe bulunan pom.xml dosyasına Jersey bağımlılıklarını ekliyoruz.
ApplicationConfig adında bir java sınıfı oluşturuyoruz.Bu sınıf yazdığımız servisin yolunu gösterecek ve yazdığımız servisi buradan kontrol edeceğiz.Birden fazla web servisi yazmanız gerekiyor olabilir ve bu servisler birbiri ile bağlantı halinde olabilir.Bu sınıfımızda @ApplicationPath ek açıklamasını(annotation) kullanacağız.Burada bizim root path'imiz bulunacak ve Application sınıfını extend etmeliyiz.Bu şekilde...
Bu aşamadan sonra web servisimizi yazmaya başlayabiliriz.Burada dikkat etmenizi istediğim yerler olacak.Bunlardan ilk'i servisimizin yaptığı işi path'ler ile yazarken isimlendirmeye çok dikkat etmeniz.Bu isimlendirmeleri yaparken örneğin http://localhost:8080/api/orders tüm siparişleri göstermesi.http://localhost:8080/api/orders/{orderId}(buraya herhangi bir id değeri gelecek) dediğinde ise girilen id numarasına ait sipariş gelmelidir.Anlatmak istediğim şey siz RESTful ile bir web servisi yazacağınızda bu servisi kullanacak olan insanın herhangi bir dokümantasyon olmadan çok rahat bir şekilde kullanabilmesi gerekiyor.Bu yüzden isimlendirmelere çok dikkat etmeliyiz.Şimdi servisimizi yazmaya başlayalım.Başlangıç olarak böyle bir servis yazalım.http://localhost:8080/api/me/gokhan dediğimizde bize cevap olarak Hoşgeldin GOKHAN desin.Hadi başlayalım.ApplicationConfig sınıfının bulunduğu package'a MerhabaService adında bir sınıf oluşturalım.Sınıfımızı oluşturduktan sonra @Path("/me") açıklamasıyla sınıfımızın yolunu belirliyoruz.Bu aşamadan sonra fonksiyonlarımızı yazmaya başlayacağız.Bir önceki yazımızda HTTP request metodlarından bahsetmiştik.Şimdilik sadece @GET açıklamasını kullanacağız.String değer döndüren getMerhaba adında bir fonksiyon yazalım.Bu fonksiyona @GET methodu ile erişilecek ve @Path("/{name}") kullanıcı tarafından girilecek.Sınıfımızın yolunu belirlerken herhangi birşey kullanmadığımız için GET isteğinde direkt me diye geçmeli
http://localhost:8080/api/me/kullanıcı-tarafından-girilen-isim daha sonra fonksiyonumuz Merhaba girilen isim şeklinde bir değer döndüreceği için bu değeri parametre olarak almamız gerekiyor bunun içinde @PathParam("name") açıklmasını kullanıyoruz.Geriye aldığımız string değerini toUpperCase() fonksiyonuyla büyütüp döndürmek.
İYİ ÇALIŞMALAR