0

我正在使用公共 RESTful API。该服务效果很好,但我在任何地方都找不到 WADL。因此,在接收到流后,我只需使用标准 DOM 对其进行解析并将其转换为我的 POJO (org.w3c.dom)。

然而,几年前,我使用 SOAP 服务并使用了 Axis2,在那里我能够使用 Axis2 附带的实用程序生成关联的客户端类以将服务编组到 Java 中。

我想知道是否有类似的 REST API,如果我有 WADL,我可以做类似的事情。我现在这样做的方式并不太糟糕而且速度很快,只是看起来已经过时了。

4

1 回答 1

2

首先,并非所有 RESTful 服务都发布自己的 WADL 描述;没有要求他们这样做,有些人强烈认为这样做是错误的,提供对您所做工作的描述违反了 HATEOAS 原则。但从你的角度来看,这真的是无关紧要的。

您想要的是为正在传递的 XML 文档获取XSD 模式;虽然完整的 WADL 可能不可用,但模式可能不可用。如果做不到这一点,您可以根据发送的消息编写一个。(为了做好 DOM 解析,您需要了解其中实际存在哪些数据;剩下的只是语法。)如果您自己编写,请使用 GUI 创作工具;有一些不错的免费的(我过去曾在 Eclipse WTP 中使用过,但肯定不是唯一的)并且在纯文本编辑器中手动编写模式会很快变得烦人。

一旦你有了一个模式,通过 JAXB(特别是xjc工具)提供它,它将为你生成绑定类。您仍然需要做一些工作来构建一个完整的客户端,但它会消除消息解析的麻烦,因为您将能够利用它Unmarshaller来完成繁重的工作。

于 2012-09-27T21:09:46.643 回答