PKI REST Data Model - dogtagpki/pki GitHub Wiki
The data model is defined using Plain Old Java Objects. The data model also contains annotations to map the resource to XML to transport over HTTP. For a single resource the data model can be defined as follows:
@XmlRootElement(name="User")
public class UserData {
@XmlAttribute(name="id")
String id;
@XmlElement(name="FullName")
String fullName;
@XmlElement(name="Email")
String email;
...
public int hashCode() { ... }
public boolean equals(Object object) { ... }
public String toString() { ... generate XML data ... }
public static UserData valueOf(String string) { ... parse XML data ... }
}
The XML annotations map the class and the fields to the following XML object:
<User id="...">
<FullName>...</FullName>
<Email>...</Email>
...
</User>
For a collection of resources the data model can be defined as follows:
@XmlRootElement(name="Users")
public class UserCollection {
Collection<UserData> users = new ArrayList<UserData>();
@XmlElementRef
public Collection<UserData> getUsers() {
return users;
}
}
The XML annotations map the class and the fields to the following XML object:
<Users>
<User id="...">
<FullName>...</FullName>
<Email>...</Email>
...
</User>
<User id="...">
<FullName>...</FullName>
<Email>...</Email>
...
</User>
...
</Users>