# 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 path | Resource class | HTTP methods
--- | --- | ---
/items/{index} | ItemResource | GET

## Running the Example

Run the example as follows:

> `mvn clean compile exec:java`

This deploys the example using Grizzly

From a web browser, visit:

> `http://localhost:8080/items/0
> http://localhost:8080/items/1
> http://localhost:8080/items/2
> http://localhost:8080/items/3
> http://localhost:8080/items/4
> `

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.