Class HalResource

java.lang.Object
org.apache.juneau.bean.hal.HalResource

@Marshalled public class HalResource extends Object
Represents a HAL Resource Object as defined by draft-kelly-json-hal-08 § 4.

A HAL Resource carries three pieces of state:

  • The reserved _links member - a map of relation name to either a single HalLink or a HalLinkArray.
  • The reserved _embedded member - a map of relation name to either a single HalResource or a HalResourceArray (sub-resources). HAL embeddings are conceptually a tree; cyclic _embedded graphs are rejected by Juneau's BeanTraverseContext by default.
  • Arbitrary payload fields, set via the dynamic set(String,Object) method (uses the @BeanProp("*") extra-properties triplet, the same pattern used by OpenApiElement and SwaggerElement).
Example:

HalResource order = new HalResource() .addLink("self", new HalLink().setHref("/orders/123")) .addLinks("curies", new HalLink().setName("acme").setHref("https://acme.example/{rel}").setTemplated(true)) .set("total", 99.50); String json = JsonSerializer.DEFAULT.write(order);

See Also: