Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 为什么吸波慢?_Rest_Wadl - Fatal编程技术网

Rest 为什么吸波慢?

Rest 为什么吸波慢?,rest,wadl,Rest,Wadl,我一直在研究WADL,想知道为什么它没有被更广泛地采用 随着REST使用率的增长,我很惊讶更多的开发工作没有使用它 WADL的设计是否存在根本性缺陷,它是否与RESTful web服务周围的传统文化不匹配,或者它完全是另一回事?我认为WADL不受欢迎的主要原因是它可能会使我们在SOAP和WSDL方面遇到的所有问题重现。对我来说,互操作性方面是web服务最重要的一个方面。 通过遵循使用纯HTTP标准的RESTful方式,您可以“免费”获得互操作性。一旦您需要一个文档来描述服务,就会有不同的客户机框

我一直在研究WADL,想知道为什么它没有被更广泛地采用

随着REST使用率的增长,我很惊讶更多的开发工作没有使用它


WADL的设计是否存在根本性缺陷,它是否与RESTful web服务周围的传统文化不匹配,或者它完全是另一回事?

我认为WADL不受欢迎的主要原因是它可能会使我们在SOAP和WSDL方面遇到的所有问题重现。对我来说,互操作性方面是web服务最重要的一个方面。
通过遵循使用纯HTTP标准的RESTful方式,您可以“免费”获得互操作性。一旦您需要一个文档来描述服务,就会有不同的客户机框架(或不同的服务器框架)对该文档进行不同的解释。 一旦不同的框架从WADL自动生成代码,您将不得不再次处理互操作性问题

缺乏标准是RESTful方式的弱点和优势,让我们给简单方法一个机会。(尽管我们确实喜欢自动代码生成:-)

吉姆·韦伯、萨瓦斯·帕拉斯塔蒂迪斯和伊恩·罗宾逊的《实践中的休息:超媒体和系统架构》提到了四个问题:

  • WADL预先采用web应用程序的静态视图,其中web使用MediaType和合同链接
  • WADL工具促进了客户端和服务端抽象的紧密耦合。从服务发布的资源将成为客户端的域模型
  • WADL没有提供关于与它所宣传的资源进行交互的顺序的线索
  • WADL经常复制资源中可用的元数据
  • 第1点和第2点是关于动态和静态客户端绑定的参数。当使用WADL时,服务实现者需要在服务更改时小心模式的向后兼容性。没有WADL,客户机必须灵活地解释响应

    第3点涉及工作流程。WADL没有记录调用API的顺序。如果服务是根据paractice实现的,WADL和非WADL服务响应都会通过链接提供订购线索

    第4点假设HEAD和OPTIONS结果可能与WADL定义不一致。实际上,很少实现或使用这些方法中的任何一种

    许多REST实现都是快速而肮脏的。实现一个REST服务很容易,只供我使用。当我必须为另一个团队提供的服务创建客户机时,我需要文档。越正式越好。最好是代码可读的文档,如WADL

    作为客户机实现者,我关心的是:

  • 如何查找支持的查询参数和标题
  • 如何查找有关请求或响应介质类型的文档?即使是IANA注册的媒体类型,我仍然需要请求/响应模式

  • 我不同意在使用REST时互操作是“免费”的。REST并不能神奇地提供互操作,而不是WADL希望提供的方式。我认识到,当从XSD映射到Java类或从XSD映射到C#时,存在互操作挑战(有些人称之为“阻抗不匹配”)。但并非所有这些映射方法都是如此。为了支持web服务80%的互操作性,XSD尤其要复杂得多。如果WADL的目标适度,它就可以提供真正的价值,而且陷阱风险很低。我同意奇索的观点,REST不会“免费”提供任何东西。你仍然有一些工作要做,以确保你处理的是苹果(而不是橙子),尤其是数据有效载荷(不管HTTP是否存在)。REST在映射到不同的“语言/工具集”目标时也会带来问题。这就为两个端点之间的阻抗失配带来了更多的机会(特别是当每个端点都不在一个控制点之下时)。我不认为这是低适应性背后的原因(事实上,我也可以对这个原因的有效性进行辩论,这是不一致的)。据我所知,wadl适应性差的原因是,它在整个解决方案的体系结构中的使用。很少有人把REST和企业SOA放在一起考虑。REST服务通常放在前端,供JavaScript或移动应用程序使用。REST在微服务SOA体系结构中的适应性很小,但在不断增长,这将推动WADL和自动客户端生成等方面的发展。同意@Cheeso(和gto406)的说法,“REST中的任何内容都是免费的”是版权所有的,还是保留副本?;)简单、好(比如说追随者)rest也有软件问题,首先在我脑海中:MS rest/JSON库中的日期问题(接下来在业余天真实现中编码特殊字符)我很惊讶我仍然收到关于这个答案的评论。。。人们现在还在考虑WADL吗?好奇的是,考虑到像“招摇过市”这样的东西的流行,人们现在是怎么想的。