Restful Web Services (JAX-RS) MatrixParam ile QueryParam da olduğu gibi filtrelemeri yapabiliriz. @QueryParam’da ‘&’ işaretiyle ayırdığımız key-value ilişkilerini, @MatrixParaam’da ‘;’ ile ayırırız. Diğer örnekleirmizde olduğu gibi hemen Maven’da oluşturduğumuz projenin web.xml ve pom.xml ayarlarını yapalım.
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 |
... <dependencies> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.8</version> </dependency> </dependencies> ... |
web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Restful Web Application</display-name> <servlet> <servlet-name>jersey-serlvet</servlet-name> <servlet-class> com.sun.jersey.spi.container.servlet.ServletContainer </servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>org.onurarslan.rest</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jersey-serlvet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> |
ProductService.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package org.onurarslan.rest; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.MatrixParam; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; // /product yolu çağırıldığında bu sınıf çalışacaktır @Path("/product") public class ProductService { // @MatrixParam ile browser üzeirnde her key-value ilişkisini ; ile ayırırız. @GET//Hangi yöntemin kullanılacağı tnaımlandı @Path("/query") //metodun çalışması için hangi yolun takip edilmesi gerektiği tanımlandı public Response getProducts(@MatrixParam("from") int from,//from MatrixParam key'inde elde edilen value al from değişkenine ata @MatrixParam("to") int to, @MatrixParam("orderBy") List<String> orderBy){ return Response.status(200).entity("getProducts query: " + from + " ile " + to + " arasinda " + orderBy.toString() + "siralamasina gore cagirildi.").build(); } } |
@MatrixParam ile path’de verilen değerleri elde ediyor ve parametrede değişkenlere atama işlemini gerçekleştiriyoruz. Projemizi browser üzerinde çağırdığımızda aşağıda ki sonucu elde edeceğiz.
URL: /rest/product/query;from=0;to=50;orderBy=ad
1 |
getProducts query: 0 ile 50 arasinda [ad]siralamasina gore cagirildi. |