我需要提出一套web服务。一些客户希望将其称为REST-JSON方式。其他一些以SOAP方式。我只想写一组代码。最重要的是,使用来配置参数,输出格式应该改变。换句话说,SOAP客户端将传递SOAP输入XML并将获得SOAP输出XML。对于其他客户端,它将是JSON。 我有什么选择?
答案 0 :(得分:2)
不重复自己通常是好的,但它可以使事情变得复杂。 远程接口足够复杂,因此混合技术以减少几行代码可能会使您的界面无法维护(根本)。
正如你只问一般我只能给你一般答案。
首先,有一篇类似的文章将进一步介绍技术层:
is it possible to have same class for both soap and rest in cxf
但是你还应该回答其他问题:
你使用Spring(或Jersy MK2),所以使用IoC可以帮助你做出很好的削减。
如您所见,我建议制作两个不同的WS-Endpoint。一个用于REST,一个用于SOAP。 它可能首先看起来很直观,但我的推理很简单:
为您的后端编写两个消费者可以让您更好地感受"多么好"你的后端是 - 你的用例是多么笨拙。
上面这个链接背后的例子感觉不够复杂,不能成为真正的世界"案例。 它只是看起来很好。
一旦你开始做一些关于安全性,计费,监控,跟踪的重大魔力......注释的数量会以一种奇怪的方式堆积。
最后但并非最不重要的是:以REST方式使Sense成为不需要以SOAP方式有意义,反之亦然。