JAX-RS @Path annotation example
This page gives you an example using JAX-RS @Path annotation, how to bind a URI pattern to your java method.
In the previous examples we have given details of application setup, dependencies, web.xml file configurations: If you want to
know about these configuration, please refer these:
Restful web services using RESTEasy hello world example.
Restful web services using Jersey hello world example.
Simple URI matching:
Look at the below class to apply @Path annotation to your method:
package com.java2novice.restful;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
@Path("/message")
public class MessageReceiveService {
@GET
public Response pingMe(){
String defaultResp = "Hi... How are you?";
return Response.status(200).entity(defaultResp).build();
}
@GET
@Path("/birthday")
public Response printBdayMessage(){
String bDayMessage = "Happy Birthday";
return Response.status(200).entity(bDayMessage).build();
}
}
|
In the above example, if you use "/message" URI pattern, pingMe() method will be invoked, and you will get "i... How are you?"
as a response.
If you use "/message/birthday" URI pattern, then printBdayMessage() method will be invoked and you will get "Happy Birthday"
as a response.
Dynamic URI with parameter matching:
In your @Path annotation URI value, anything between "{" and "}" braces can be dynamic. This value can be mapped to method input variable using
@PathParam annotation. Look at below example:
package com.java2novice.restful;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
@Path("/message")
public class MessageReceiveService {
@GET
@Path("{custMessage}")
public Response printCustomMessage(@PathParam("custMessage") String message){
return Response.status(200).entity(message).build();
}
}
|
In the above example, if you use "/message/java2novice" as an URI, then you will get response as "java2novice".
If you use "/message/do-u-like-it" as an URI, then you will get response as "do-u-like-it".
In the next page you will see an example on how to use @Path annotation with regular expression matching.
|