Utility Beans
The org.apache.juneau.rest.beans package contains a set of reusable utility beans meant to help with putting together explorable REST interfaces.
The UtilityBeansResource class shows how these beans are used.
The resource class is hosted in the example REST applications rendered below:
ResourceDescriptions
The getChildDescriptions() method shows an example of rendering a list of descriptive links for child endpoints.
@RestGet("/")
public ResourceDescriptions getChildDescriptions() {
return ResourceDescriptions
.create()
.append("BeanDescription", "Example of BeanDescription bean")
.append("Hyperlink", "Example of Hyperlink bean")
.append("SeeOtherRoot", "Example of SeeOtherRoot bean");
}
HTML representation

JSON representation

BeanDescription
The aBeanDescription() method shows an example of rendering simple schema information about an arbitrary bean class.
@RestGet("/BeanDescription")
@HtmlDocConfig(
aside={
"",
" Example of serialized org.apache.juneau.rest.utilitybeans.BeanDescription bean.",
""
}
)
public BeanDescription aBeanDescription() {
return BeanDescription.of(Address.class);
}
HTML representation

JSON representation

Hyperlink
The aHyperlink() method shows an example of rendering a simple hyperlink.
@RestGet("/Hyperlink")
@HtmlDocConfig(
aside={
"",
" Example of serialized org.apache.juneau.rest.utilitybeans.Hyperlink bean.",
""
}
)
public Hyperlink aHyperlink() {
return Hyperlink.create("/utilitybeans", "Back to /utilitybeans");
}
HTML representation

JSON representation

SeeOtherRoot
The aSeeOtherRoot() method
shows an example of sending a 303 See Other with a Location header pointing to the servlet root.
@RestGet("/SeeOtherRoot")
@HtmlDocConfig(
aside={
"",
" Example of serialized org.apache.juneau.rest.utilitybeans.SeeOtherRoot bean.",
""
}
)
public SeeOtherRoot aSeeOtherRoot() {
return SeeOtherRoot.INSTANCE;
}
Clicking on the link will just redirect to this same page.
Typically this is useful for endpoints where you want to redirect back to the servlet root, such as a DELETE.
Share feedback or follow-up questions for this page directly through GitHub.