适用于Linux上REST和/或SOAP Web服务开发的堆栈/框架

适用于Linux上REST和/或SOAP Web服务开发的堆栈/框架,linux,web-services,rest,soap,Linux,Web Services,Rest,Soap,我一直在尝试对CentOS/Redhat的REST和SOAP web服务支持框架进行一些研究,这些框架还能够合理地支持服务本身之外的管理web应用程序 我们还没有确定REST或SOAP是服务通信的方式。通信需求非常简单,因此可能不需要更重的SOAP接口。(但也不会很复杂) 我过去曾经使用过RubyonRails(目前是这样),但是团队中的其他成员对该技术并不像J2EE那样熟悉 ServiceStack也很有趣(我现在正在研究它),但我过去从事过.Net/Mono项目,遇到过各种Mono实现和运行

我一直在尝试对CentOS/Redhat的REST和SOAP web服务支持框架进行一些研究,这些框架还能够合理地支持服务本身之外的管理web应用程序

我们还没有确定REST或SOAP是服务通信的方式。通信需求非常简单,因此可能不需要更重的SOAP接口。(但也不会很复杂)

我过去曾经使用过RubyonRails(目前是这样),但是团队中的其他成员对该技术并不像J2EE那样熟悉

ServiceStack也很有趣(我现在正在研究它),但我过去从事过.Net/Mono项目,遇到过各种Mono实现和运行时问题。(我确信在过去的两年里,它已经取得了长足的进步,但我想看看是否有更好的替代方案)

基本上,我需要一个支持REST或SOAP的堆栈/框架(两者都很好),并且可以支持MVC风格的Web应用程序。其想法是Web服务和Web应用程序可以访问同一个数据库。Web应用程序将是最终用户/管理员管理界面,Web服务将用于远程系统/自动访问受控数据

最后,大约80%的应用程序数据库模式是预定义的,不会遵循任何MVC风格的建模。因此,像RubyonRails这样一个只为MVC使用而对模式数据进行紧密建模的框架并不可取,因为我们最终不得不重新创建模型,或者编写一个Web服务和Web应用都必须使用的完全独立的数据库查询处理库。如果现有数据可以更灵活地建模,那就太好了。(以防现有架构在以后更改)


对不起,我太笼统了。(或具体)我只是对意见感兴趣。谢谢

REST和SOAP在许多方面都有很大的不同

REST是一种体系结构风格,SOAP是一种协议。SOAP定义事物如何通信,REST定义如何无状态地描述事物

我确实更喜欢使用HATEOAS的REST(作为应用程序状态引擎的超媒体)。具有该体系结构的应用程序使用内容协商(HTTP上的接受头)为这些资源公开具有特定URI(如)和表示(JSON、XML、HTML等)的资源

HATEOS部分是资源之间的链接,如
。他们太棒了

RESTful实现框架可用于多种语言。在Ruby上,Sinatra可能是最好的选择。Flask将是Python的代言人。在node.js上,expressjs越来越受欢迎

我是一个PHP的家伙。在我所知道的所有框架(包括Zend、Symfony、Slim、CodeIgniter和许多其他框架)中,最好的REST实现是这个。它是以一种理智的方式实现内容协商的唯一工具。(免责声明:我已经编写了代码,我的观点可能有偏见。使用类似RESTful框架的Litmus测试来获取您自己的观点)

有一种情况我确实更喜欢SOAP通信:当使用我的服务的客户机已经将SOAP用于其他任何事情时。一致性在这个案件中获胜。我相信Java玩家可能也更喜欢SOAP。

REST、SOAP或MQ客户端可以使用ServiceStack服务 REST和SOAP是不同的方法,尽管基于消息的DTO-first方法是唯一允许REST和SOAP端点调用相同服务的.NET框架。由于ServiceStack web服务是纯C#服务,因此同样的服务也可以托管在内存或内存中。(还有一个非http上下文)

SOAP的固有局限性
尽管SOAP通过HTTP Post路由所有内容,但您需要围绕这一限制为SOAP端点中的每个可用服务定义一个新类。下面是一个如何创建一个REST服务的示例。

我是在寻找意见,而不是链接列表。有很多关于合适的框架和库的好问题,这些问题的答案对我和其他人都有帮助。我提到,他还没有确定REST或SOAP是一条出路。我并不是说我既需要休息也需要肥皂。如果有人对他们正在做的事情有强烈的意见并想回答,我会非常高兴。提前谢谢!