| [//]: # " Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved. " | |
| [//]: # " " | |
| [//]: # " This program and the accompanying materials are made available under the " | |
| [//]: # " terms of the Eclipse Distribution License v. 1.0, which is available at " | |
| [//]: # " http://www.eclipse.org/org/documents/edl-v10.php. " | |
| [//]: # " " | |
| [//]: # " SPDX-License-Identifier: BSD-3-Clause " | |
| 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 | |
| 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. | |
| ```xml | |
| <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: | |
| - <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. |