<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Apache Wink : JAX-RS Resources, HTTP Methods, and Paths</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            Apache Wink : JAX-RS Resources, HTTP Methods, and Paths
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Sep 07, 2009 by <font color="#0050B2">michael</font>.
				    </div>

				    <h1><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-Resources"></a>Resources</h1>

<p>Resources are one of the fundamental concepts in REST.  REST emphasizes the manipulation of resources rather than issuing function calls.  Resources have unique identifiers.  In HTTP terms, this means associating every resource with at least one URL.</p>

<p>In order to manipulate a resource, requests are made with a specific HTTP method.  For instance, in order to retrieve a representation of a resource, an HTTP GET request to the resource's URL is issued. In order to create a new item in a collection, an HTTP POST can be used with the collection URL.</p>

<p>Application developers define resources and the HTTP methods in order to quickly manipulate them by using regular plain old Java objects and JAX-RS annotations.</p>

<p><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-RootResource"></a></p>

<h3><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-DefiningaRootResource%28@PathonJavaclass%29"></a>Defining a Root Resource (@Path on Java class)</h3>

<p>Developers can use POJOs to define a resource.  Root resources have a <b>@Path</b> annotation at the class declaration level.  JAX-RS matches an incoming request's URL with the <b>@Path</b> annotation on all of an application's root resources in order to determine which initial Java class will handle the request.</p>

<p>Root resources Java class instances are created per request by default.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Reference</b><br />Refer to the JAX-RS Application configuration topic for more information.</td></tr></table></div>
<p>Resource classes have methods that are invoked when specific HTTP method requests are made, referred to as resource methods. In order to create Java methods that will be invoked with specific HTTP methods, a regular Java method must be implemented and annotated with one of the JAX-RS @HttpMethod annotated annotations (namely, @GET, @POST, @PUT, and @DELETE).</p>

<p>For example, if a resource is located at a "/welcome" URL, the following root resource is defined.</p>

<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>WelcomeMessage.java</b></div><div class="codeContent panelContent">
<pre class="code-java">@Path(<span class="code-quote">"/welcome"</span>)
<span class="code-keyword">public</span> class WelcomeMessage {
    <span class="code-keyword">private</span> <span class="code-object">String</span> welcomeMessage = <span class="code-quote">"Hello world!"</span>;

    @GET
    <span class="code-keyword">public</span> <span class="code-object">String</span> returnWelcomeMessage() {
        <span class="code-keyword">return</span> welcomeMessage;
    }
}
</pre>
</div></div>
<p>Any incoming GET request that has the URL of "/welcome" is handled by WelcomeMessage class's <b>returnWelcomeMessage()</b> method.  A string is returned that represents the response body and is sent as the response payload in a HTTP 200 status response.</p>

<h3><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-Usingajavax.ws.rs.core.Response"></a>Using a javax.ws.rs.core.Response</h3>

<p>In the previous GET resource method example, the response body is returned as a String.  If a more complex response is requiredfor example, additional HTTP response headers or a different status code, a <b>javax.ws.rs.core.Response</b> should be used as the Java method's return type.  By building a Response object, additional information can be returned to the client.</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">@Path(<span class="code-quote">"/welcome"</span>)
<span class="code-keyword">public</span> class WelcomeMessage {
    <span class="code-keyword">private</span> <span class="code-object">String</span> welcomeMessage = <span class="code-quote">"Hello world!"</span>;

    @GET
    <span class="code-keyword">public</span> Response returnWelcomeMessage() {
        <span class="code-object">String</span> responseEntity = welcomeMessage;
        <span class="code-keyword">return</span> Response.status(299).entity(responseEntity).header(<span class="code-quote">"CustomHeader"</span>, <span class="code-quote">"CustomValue"</span>).build();
    }
}
</pre>
</div></div>
<p>The previous example uses 299 as the status code, standard HTTP status codes should be used in order to help clients understand responses.When using Strings as the response entity, different Java types may be used for complex responses.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Reference</b><br />Refer to the Request/Response entities page for more details on how request/response entities are handled.</td></tr></table></div>


<p><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-HTTPMethods"></a></p>

<h3><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-UsingCommonHTTPMethods%28@GET%2C@POST%2C@PUT%2C@DELETE%29"></a>Using Common HTTP Methods (@GET, @POST, @PUT, @DELETE)</h3>

<p>The four most common HTTP methods are GET, POST, PUT, and DELETE.</p>

<p>As shown in the previous example,  an HTTP GET response to "/welcome" invokes the  returnWelcomeMessage() Java method.In order&nbsp; to add a Java method that would be invoked when a HTTP PUT request is made to "/welcome", the following code should be added:</p>

<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>WelcomeMessageWithPut</b></div><div class="codeContent panelContent">
<pre class="code-java">@Path(<span class="code-quote">"/welcome"</span>)
<span class="code-keyword">public</span> class WelcomeMessage {
    <span class="code-keyword">private</span> <span class="code-object">String</span> welcomeMessage = <span class="code-quote">"Hello world!"</span>;

    @GET
    <span class="code-keyword">public</span> <span class="code-object">String</span> returnWelcomeMessage() {
        <span class="code-keyword">return</span> welcomeMessage;
    }

    @PUT
    <span class="code-keyword">public</span> <span class="code-object">String</span> updateWelcomeMessage(<span class="code-object">String</span> aNewMessage) {
        welcomeMessage = aNewMessage;
    }
}
</pre>
</div></div>
<p>Notice that the updateWelcomeMessage has an unannotated parameter which represents an incoming request's body.</p>


<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Reference</b><br />Refer to the Request/Response entities page for more details on how request/response entities are handled.</td></tr></table></div>

<p><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-SubresourceMethod"></a></p>

<h3><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-SubresourceMethods%28@Pathand@GET%2C@POST%2C@PUT%2C@DELETEonaJavamethod%29"></a>Subresource Methods (@Path and @GET, @POST, @PUT, @DELETE on a Java method)</h3>

<p>Sometimes it is easier having a root resource resolve a generic URL path and to have <b>@Path</b> annotated methods further resolve the request.  For instance, suppose that a HTTP GET to "/administrator" returned generic information about an administrator.  However, sometimes it is better to return smaller bits or more detailed information about the resource using a slightly different URL identifier.  Suppose that a HTTP GET to "/administrator/name" should return the name.  Instead of creating many root resource classes for each URL, you can have the root resource initially resolve the beginning of the URL request and then further resolve the request against subresource methods.</p>

<p>Subresource methods are Java methods with a <b>@Path</b> annotation and a @HttpMethod annotated annotation (@GET, @POST, @PUT, @DELETE).</p>

<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>AdministratorResourceWithSubresourceMethod</b></div><div class="codeContent panelContent">
<pre class="code-java">@Path(<span class="code-quote">"/administrator"</span>)
<span class="code-keyword">public</span> class Administrator{

    @GET
    <span class="code-keyword">public</span> <span class="code-object">String</span> findUserInfo() {
        <span class="code-object">String</span> userInfo = <span class="code-keyword">null</span>;
        /* build user info */
        <span class="code-keyword">return</span> userInfo;
    }

    @GET
    @Path(<span class="code-quote">"/name"</span>)
    <span class="code-keyword">public</span> <span class="code-object">String</span> getJustUserName() {
        <span class="code-object">String</span> userName = "";
        /* get the user name */
        <span class="code-keyword">return</span> userName;
    }

    @GET
    @Path(<span class="code-quote">"/id"</span>)
    <span class="code-keyword">public</span> <span class="code-object">String</span> getUserId() {
        <span class="code-object">String</span> userId = "";
        /* get the user id */
        <span class="code-keyword">return</span> userId;
    }
}
</pre>
</div></div>
<p>An HTTP URL request to the <b>"/administrator"</b> would resolve to Administrator#findUserInfo().  A HTTP URL request to "/administrator/name" would invoke the Administrator#getJustUserName() method.  Finally a HTTP URL request to "/administrator/id" would resolve to Administrator#getUserId().</p>

<p><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-SubresourceLocator"></a></p>

<h3><a name="JAX-RSResources%2CHTTPMethods%2CandPaths-UsingSubresourceLocators%28@PathonJavamethod%29"></a>Using Subresource Locators (@Path on Java method)</h3>


<p>In more complicated scenarios, subresource locators are needed.  Subresource locators are particularly useful when requests must be further resolved by other objects. Subresource locators are Java methods which have only an <b>@Path</b> annotation.  They are different than subresource methods because they do <b>not</b> have any HTTP method annotation on them.</p>

<p>A subresource locator returns an object that has JAX-RS annotations on its methods (or inherits them).  The object is used to further resolve the incoming requests by dynamically inspecting the object for JAX-RS annotations.</p>

<p>This scenario uses @PathParams which are discussed on the parameters page.</p>

<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b>UsersResourcesWithSubresourceLocators</b></div><div class="codeContent panelContent">
<pre class="code-java">@Path(<span class="code-quote">"/users"</span>)
<span class="code-keyword">public</span> class UsersCollection {

    @Path(<span class="code-quote">"{userid}"</span>)
    <span class="code-keyword">public</span> <span class="code-object">Object</span> findUserInfo(@PathParam(<span class="code-quote">"userid"</span>) <span class="code-object">String</span> userId) {
        <span class="code-keyword">if</span>(userId.equals(<span class="code-quote">"superuser"</span>)) {
            <span class="code-keyword">return</span> <span class="code-keyword">new</span> SuperUser();
        }
        <span class="code-keyword">return</span> User.findUserInDatabase(userId);
    }
}

<span class="code-keyword">public</span> class Superuser {
    @GET
    <span class="code-keyword">public</span> <span class="code-object">String</span> getUserInfo() {
       <span class="code-object">String</span> userInfo = /* get the user info */;
       <span class="code-keyword">return</span> userInfo;
    }

    @GET
    @Path(<span class="code-quote">"/contactinfo"</span>)
    <span class="code-keyword">public</span> <span class="code-object">String</span> getContactInfo() {
      <span class="code-object">String</span> contactInfo = /* get the user contact info */;
      <span class="code-keyword">return</span> contactInfo;
    }
}

<span class="code-keyword">public</span> class User {
    <span class="code-keyword">protected</span> <span class="code-object">String</span> name;

    <span class="code-keyword">protected</span> User() {
        /* subresource locator object lifecycles are controlled by the developer */
    }

    <span class="code-keyword">public</span> <span class="code-keyword">static</span> User findUserInDatabase(<span class="code-object">String</span> userName) {
        User u = /* get user from database with assigned field values */
        <span class="code-keyword">return</span> u;
    }

    @GET
    <span class="code-keyword">public</span> <span class="code-object">String</span> getInfo() {
        <span class="code-object">String</span> info = /* get the user info */;
        <span class="code-keyword">return</span> info;
    }

    @GET
    @Path(<span class="code-quote">"/name"</span>)
    <span class="code-keyword">public</span> <span class="code-object">String</span> getMyUserName() {
        <span class="code-keyword">return</span> name;
    }
}

</pre>
</div></div>
<p>A HTTP GET to "/users/superuser" would result in User#findUserInfo() being invoked first.  The method inspects the "userId" path parameter (which resolves to "superuser" for this request) so a Superuser object is returned.  The request is then further resolved against the Superuser object.  In the simple "/users/superuser" case, the request invokes Superuser#getUserInfo();</p>

<p>If a HTTP GET to "/users/superuser/contactinfo" was made, then User#findUserInfo() is invoked and again returns a Superuser object.  The Superuser object is then used to resolve the "/contactinfo" portion of the request which invokes Superuser#getContactInfo.</p>

<p>If a HTTP GET to "/users/user1/name" was made, then User#findUserInfo() is again invoked but it would go and look up the user from the database and return a User object.  The User object is then used to resolve the "/name" portion and results in the User#getMyUserName() method being invoked on the User object returned.</p>

				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="http://cwiki.apache.org/confluence/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Nov 11, 2009 06:57</font></td>
		    </tr>
	    </table>
    </body>
</html>