首页 文章

用于SOAP的WSDL和基于JSON的REST和REST的WSDL

提问于
浏览
6

当公司想要发布Web服务时,是否为SOAP发布单独的WSDL并为基于REST的Web服务单独发布,或者它们是否在同一个WSDL中合并? WSDL只能代表基于JSON(而不是XML)的REST Web服务吗?

假设Web服务客户端是基于Java的 .

如果SOAP和REST在同一个WSDL中合并,那么wsimport是否为SOAP生成单独的类(用于绑定XML到Java对象),并为REST分开?

3 回答

  • 6

    您需要WSDL 2.0(或WADL)来描述REST服务 . 目前对WSDL 2.0的支持非常有限,wsimport不支持它 . 我不是Java开发人员,但我认为wsimport仅适用于SOAP服务(JAX-WS,它也不支持WSDL 2.0) .

    编辑:

    检查this extension . 它应该允许您使用JSON编码公开JAX-WS服务 . 它还应该公开"JavaScript proxy"以调用JSON服务 . 为了更准确地回答您的问题 - 我认为您不能在没有WSDL 2.0或WADL的情况下描述REST服务 . 因此,您无法将SOAP和REST服务合并到大多数堆栈支持的单个WSDL 1.1 . 有关描述JSON服务检查this question的进一步参考 .

  • 1

    WSDL是否只能表示基于JSON(而不是XML)的REST Web服务

    WSDL 2可以通过使用模式定义XML类型来描述XML . 见this introduction on WSDL 2 for REST .

    虽然,我以前从未编写过REST的WSDL,但我只是发布了类型的URL和模式 .

  • 2

    由于工具尚未完全存在,我怀疑许多人在单个WSDL中使用SOAP和HTTP绑定 . 虽然两者都可以在WSDL 2.0中表示,但同时,由于大多数人依靠工具来管理他们今天的WSDL(以及WS堆栈的其余部分),他们可能根本就不会费心并且只留下他们的WSDL .

    此外,大多数REST人员都是手工构建客户端,而不是依赖于工具和WSDL,因此这些人目前“缺少”工具和支持 .

    当工具在服务器端和客户端都赶上时,实际上可能会更多地采用WSDL 2.0中的HTTP服务绑定 . 无论成语是否将规范与特定WSDL混淆,还有待观察 .

    如果他们想要在相同的终点上托管他们,那么他们可能会 .

相关问题