2011-06-08 58 views
0

过去几周我一直在使用Restlet库,并且从我所看到的情况来看,它的效果相当不错。能够为客户端和服务器定义一个通用接口供消费使用的能力超过了我所使用的任何混乱的soap框架。SOAP to Restlets多种方法的策略

然而,有些事情一直困扰着我的心,我只是拿过去:

是否有许多方法定义Restlets的好办法?

我的主要用例是我有一个soap web服务,它有10-15个左右的方法。正如我所看到的,如果我希望将其转换为Restlet,我需要根据哪些方法变为get方法vs post或put将它分离为8-15个接口 - 我认为您不能拥有多个接口每个接口的动词方法(get,post,put等)。这似乎是一个麻烦而笨拙的解决方案。

我想过使用某种类型的工厂\地图技术来缓解这种情况 - 但我想确保我不会错过更好的东西。

谢谢

回答

1

Restlet有一个JAX-RS extension。 JAX-RS提供@Path注释,用于标识资源的URI。路径可以附加到类型或方法。路由应该由容器完成,而不是显式定义路由器规则。

+0

这看起来很有希望。我必须检查一下。 +1 – javamonkey79 2011-06-08 20:51:38

+0

虽然这个扩展没有提供客户端,你有什么建议吗? – javamonkey79 2011-06-10 00:27:54

3

尽管来自SOAP背景,但它可能会令人惊讶,您观察它实际上是一件好事,因为您的Web API变得越来越多RESTful。

在REST/HTTP中,方法是标准和有限的(通过设计),并且为了弥补,我们根据需要创建尽可能多的资源/ URIS。

关于JAX-RS,它没有相同的客户端/服务器一致性。我会建议一般使用核心Restlet API,因为它更强大/可扩展。

如果您可以列出您的方法名称,这将有助于建议适当的映射到HTTP资源和方法,我不知道你最终需要那么多的接口。即使情况如此,服务器端的实现将变得简单并且更易于维护,这也是有好处的。

希望这会有所帮助

+0

我立即认出了你的名字,并且让我说 - 到目前为止,我对框架的使用让我非常高兴。做得好!有一件事让我看到其他休息框架是uri路径映射。使用JAX-RS扩展,您可以在界面中定义路径而不需要路由器。但是,在restlet中似乎没有相应的客户端。我尝试过CXF,但它不会像restlet那样进行自动内容映射 - 所以我感觉有点不知所措。建议? – javamonkey79 2011-06-10 16:47:03