从WSDL生成REST

从WSDL生成REST,rest,wsdl,Rest,Wsdl,我正在寻找自动生成RESTWS的最佳方法。 我们有一个web服务(SOAP)集合,其中包含为它们生成的WSDL。我需要提供不同的API来调用这些web服务。(PHP、Pyton、REST、CLI…) 其中一个需求是为这些ws提供RESTAPI 生成REST客户机/服务器的最佳方法是什么?是否有自动生成REST客户机/服务器的工具? WSDLs有可能会更改每个版本 谢谢从WSDL生成REST API是不可能的。你不能混用橙子和苹果 SOAP是建立在HTTP之上的协议。Web服务由一组方法/操作表示

我正在寻找自动生成RESTWS的最佳方法。 我们有一个web服务(SOAP)集合,其中包含为它们生成的WSDL。我需要提供不同的API来调用这些web服务。(PHP、Pyton、REST、CLI…) 其中一个需求是为这些ws提供RESTAPI

生成REST客户机/服务器的最佳方法是什么?是否有自动生成REST客户机/服务器的工具? WSDLs有可能会更改每个版本


谢谢

从WSDL生成REST API是不可能的。你不能混用橙子和苹果

SOAP是建立在HTTP之上的协议。Web服务由一组方法/操作表示。您可以将Web服务视为复杂的RPC。一般来说,我们可以说Web服务是关于动词的,用于调用远程方法/操作。Web服务也没有统一的接口,这就是WSDL存在的原因

REST是体系结构风格(范围比API更广)。RESTAPI由一组资源和表示形式表示。资源是信息的来源,通过统一接口进行管理。一般来说,我们可以说restapi是关于名词的。因为所有资源都必须有统一的接口,所以不需要WADL(为REST创建WSDL之类的东西的尝试失败)


我怀疑您是否能自动将动词转换为名词等。

请查看下面介绍如何使用WSDL2.0描述REST服务的文章。它只能在预期的消息格式为XML时使用。

不要重写现有的基于SOAP的web服务,而是使用API Express将其表示为可移动的REST服务。不需要转换。继续运行SOAP服务,通过一个WSDL文件和一些配置参数,它可以作为REST服务轻松地集成到移动应用程序中

如何将WSDL服务(SOAP)公开为REST API:


Apery.io API Express:

REST和WSDL是两个基本相反且不兼容的概念。。。。WSDL/SOAP服务是围绕函数和方法构建的(对客户做点什么),而REST则基于资源(HTTP
GET/customer/5
)。我高度怀疑您是否能够将SOAP WSDL进行任何有意义的“转换”,使之成为任何与REST服务甚至有点相似的东西……@marc_的协议设计者理论就是其中之一。现实生活是第二位的,当REST被选为架构时,因为是投影仪唯一懂的协议,是时尚的,每个年轻的站长都懂等等。。。并且应该使用来自经典web服务的内容。我认为这个问题很好(但我找不到工具)。我的意见的第二部分是下面的答案。我完全理解你,但不同意。主要语言的现代服务器框架(javac#)可以使用SOAP+WSDL、REST(通过JSOM/XML直到用户)免费提供完整的服务(很少的注释/属性)。如果集成商有(免费的)WSDL,为什么不在30秒内生成类型安全的客户机代码(类)?为什么必须手动生成容易出错的可重复代码?我的观点的第一部分受到质疑。@JacekCz由于存根生成,您将失去松耦合。如果服务描述发生更改,则必须重新生成代码,并重新编译、重新部署应用程序。简单地说,这种描述可以防止API更改的运行时自适应。这就是为什么;)1.强化API不是大学理论,而是商业中的真实生活。2.来自一位朋友的真实故事:使用一致(甚至是事务性)数据对“端点”(URI'u)集进行开槽。动词变成方法等。本阶段协议的变更?不不不基于协议构建经典Web服务。通过URL更改数据不是API更改吗?这是api更改。编译(比如说安全)方式与intepreted(不需要重新编译,但可以直接使用)。3我不热衷于SOAP,解决方案的主要2语言版本使用Apache Thrift“IDL first”解决方案,非常优雅和高性能的服务(顺便说一句,在协议版本中有动态升级字段的概念,您会喜欢的)。只有集成的古代第三代Delphi无法“讲节俭”,所以转向“coomon分母”生成SOAP。掌握3种语言/环境/软件提供商解决方案永远不需要fluent api