JAX-RS (@QueryParam&@DefaultValue)

     Herkese merhaba.Bu yazımızda @QueryParam ek açıklamasını öğreneceğiz.Bir önceki yazılarımızda belirttiğimiz @PathParam açıklamasının yetersiz olduğunu düşünmüşler ki böyle bir açıklama daha ekleme ihtiyacı duymuşlar :)Ya da kullanıcıya daha geniş bir kullanım alana sunmak.
GET/api/bagiscilar diye yapılan bir istekte bize bağışçıların tümünün döneceğini öğrenmiştik.Fakat kullanıcının bunu daha fazla sınırlayabildiğini de biliyoruz.Örneğin 3 id numarasına sahip bagışcı.Peki ya biz Hatay'daki AB+ kan grubuna sahip bağışçıları istiyoruz.Aklınıza GET/api/bagiscilar/Hatay/ABRH+ gelmis olabilir.Fakat bu isteği çok daha fazla uzatabilir.Mesela Hatay'daki 25 yaşüstü erkek ve A RH+ kan grubuna sahip bagışçıları getir deyince kaç türlü kombinasyon çıktığını düşünün :)İşte bu durumlarda yardımımıza @QueryParam yetişiyor.Yazdığımız query string'e göre istenilen veriyi çekiyor.Şimdi örneğimize geçelim.Örneğimizdeki sorgu GET/api/order?startPage=10&&pageSize=20 gibi.Bu çok daha fazla uzayabilir.Herzamanki gibi ApplicationConfig classımız aynı şekilde görevine hazır bir şekilde projemizde yerini almış durumda :)Daha sonra yazdığımız orderService classımızda kullandığımız @QueryParam ve @DefaultValue açıklamalarına dikkat edelim.@DefaultValue belirtilen isime ait her hangi bir veri girilmezse o alanın hangi değere sahip olacağını belirtiyor.Kodlarımızı inceleyip uygulamamızı çalıştıralım.

package com.mycompany.restqueryparam;
import javax.ws.rs.*;
@Path("/orders")
public class OrderService {
@GET
public String getOrders(
@QueryParam("stateCode")
String stateCode,
@QueryParam("dateFrom")
String fromDateString,
@QueryParam("dateTo")
String toDateString,
@DefaultValue("-1")
@QueryParam("pageStart")
int pageStart,
@DefaultValue("-1")
@QueryParam("pageSize")
int pageSize
) {
String message="Started from all orders.";
if(stateCode!=null){
message+="filtered orders for the state"+stateCode+".";
}
if(fromDateString !=null && toDateString !=null){
message+="Filtered orders for the date range,from"+fromDateString+"to"+toDateString+".";
}
if(pageStart !=-1 && pageSize!=-1){
message+="Did pagination from order start : "+pageStart+",pageSize:"+pageSize;
}
return message;
}
}


Bir sonraki yazımızda görüşmek dileğiyle.İyi çalışmalar.

Hiç yorum yok:

Yorum Gönder

Spring Boot Uygulamasını Heroku üzerinde Deploy Etme

Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...