tree: 742ea2105686fdeea44b2b81cbea8cd1d42088ab [path history] [tgz]
  1. src/
  2. pom.xml
  3. README.MD
examples/declarative-linking/README.MD

Declarative Hyperlinking Example

This example demonstrates how to use the declarative hyperlink annotations.

Contents

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 pathResource classHTTP methods
/items/{index}ItemResourceGET

Sample Response

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>

Running the Example

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.