2011-07-16 47 views
1

假设我遵循HATEOAS并在我的XML中使用超文本。事情是这样的:使用JAXB或类似的东西自动填充HATEAOS链接?

/客户/ 32

<Customer> 
    <FirstName>Joe</FirstName> 
    <LastName>Smith</LastName> 
    <Address href="/address/4324"> 
</Customer> 

/地址/ 4324

<Address> 
    <Street>123 Fake St</Street> 
    <Town>Springfield</Town> 
</Address> 

是否有一个库类似于或JAXB的扩展,它可以解组一个客户,并自动查询并解除地址作为该客户的财产(如customer.getAddress().getStreet())?如果没有,那么这对于客户端缓存有什么好处呢?

+1

你是怎么生成的地址类href属性? – craig

回答

3

在JAXB中,您可以为此用例使用XmlAdapter。 XmlAdapter将指定值类型字符串和绑定类型地址。你会添加逻辑在它们之间进行转换。

获取更多信息

+0

如果我正在用XJC生成我的课程,那是否会起作用?我需要一个链接/地址选择的模式元素吗?或者模式只需要匹配转换后的状态? – jiggy

+0

@Jiggy - 我会建议修改生成的源代码以添加到XmlAdapter中。 –

+0

@BlaiseDoughan,让我确定我明白了。 Customer类有一个getAddress()方法; getAddress()方法具有@XmlJavaTypeAdapter(AddressAdapter.class)注释; Address类的属性被注释为@XmlElement和@XmlValue。过程:AddressAdapter.unmarshall()方法使GET调用/ address/4324来获取XML呈现,生成/返回Address类的一个实例,然后通过getStreet()返回街道。它是否正确? – craig

相关问题