This example demonstrates how to use the declarative hyperlink annotations.
The example consists of one resource class and one representation class along with a couple of model classes:
org.glassfish.jersey.examples.linking.resources.ItemResource
A resource class that produces a XML response to an HTTP GET.
com.sun.jersey.samples.linking.representation.ItemRepresentation
A JAXB representation class used to produce XML. This class also contains @Link and @Ref annotations to produce hyperlinks in the XML document.
The mapping of the URI path space is presented in the following table:
URI path | Resource class | HTTP methods |
---|---|---|
/items/{index} | ItemResource | GET |
You can access resources of this application also using curl:
curl -v http://localhost:8080/items/1
In this example you should see an XML snippet with a next and a previous link.
<item> <name>Item 1</name> <link href="http://localhost:8080/items/1" rel="self"/> <links> <link href="http://localhost:8080/items/2" rel="next"/> <link href="http://localhost:8080/items/0" rel="prev"/> </links> </item>
Run the example as follows:
mvn clean compile exec:java
This deploys current example using Grizzly. You can access the application at:
Notice how the first has a self link, a next link but no previous link, the second, third and fourth have all three and the last one only has a self link and prev link.
Observe the HTTP headers included in the responses (e.g. via curl -v
). Notice that there is a HTTP Link header for next and previous when appropriate.