Link Serialization With JAX-RS 2+ 📎
JAX-RS 2+ supports rfc5988 compliant and JAXB-serializable links.
A Link can be treated as an ordinary payload:
import javax.ws.rs.core.Link;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Message {
@XmlJavaTypeAdapter(Link.JaxbAdapter.class)
private Link airhacksLink;
public Message() {
this.airhacksLink = Link.fromUri("http://airhacks.com").
rel("workshops").
build();
}
}
An entity directly exposed via:
@Path("messages")
public class MessagesResource {
@GET
public Message get() {
return new Message();
}
}
produces the following output:
<message>
<airhacksLink href="http://airhacks.com" rel="workshops"/>
</message>
See you at Java EE Workshops at Munich Airport, Terminal 2 or Virtual Dedicated Workshops / consulting