当前位置:  开发笔记 > 编程语言 > 正文

为什么缓慢的WADL吸收?

如何解决《为什么缓慢的WADL吸收?》经验,为你挑选了2个好方法。

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

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

它的设计是否存在根本缺陷,它是否与通常围绕RESTful Web服务的文化相匹配,还是完全不同于其他东西?



1> LiorH..:

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

缺乏标准是RESTful方式的弱点和强度,让我们给出一个简单的方法.(即使我们真的很喜欢自动代码生成:-))


我不同意在使用REST时互操作是"免费的".REST不会神奇地提供互操作,而不是WADL希望提供的方式.我认识到,当从XSD映射到Java类或从XSD映射到C#时,存在互操作挑战(有些人称之为"阻抗不匹配").但是,并非所有这些映射方法都是如此.特别是XSD比为了支持Web服务的80%互操作案例需要更复杂.如果WADL的目标适度适度,它可以提供真正的价值,并且存在低风险的陷阱.
我同意Cheeso,REST没有提供任何'免费'.您还有一些工作要做,以确保您处理苹果(而不是橙子),尤其是数据有效负载(无论是否存在HTTP).在映射到不同的"语言/工具集"目标时,REST也会产生问题.这为两个端点之间的阻抗不匹配带来了更多的机会(特别是当每个端点不在单个控制点下时).

2> 小智..:

Jim Webber,Savas Parastatidis和Ian Robinson撰写的"实践中的REST:超媒体和系统架构"提到了四个问题:

    WADL预先获取Web应用程序的静态视图,其中Web使用mediatypes和合同链接

    WADL工具促进了客户端和服务端抽象的紧密耦合.从该服务公布的资源成为客户端的域模型.

    WADL没有提供有关与其宣传的资源进行交互的排序的线索.

    WADL经常复制资源中可用的元数据.

第1点和第2点是动态与静态客户端绑定的参数.使用WADL时,服务实现者在服务更改时需要注意模式的向后兼容性.如果没有WADL,客户端必须灵活地解释响应.

第3点涉及工作流程.WADL没有记录应该调用API的顺序.如果服务是根据HATEOAS实践实现的,WADL和非WADL服务响应都提供了通过链接排序的线索.

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

许多REST实现都很快且很脏.只为了我的使用,很容易实现REST服务.当我必须为不同团队提供的服务创建客户端时,我需要文档.越正式越好.代码可读文档,例如WADL,是最好的.

我作为客户端实现者的担忧是:

    如何发现支持的查询参数和标头?

    如何找到有关请求或响应媒体类型的文档?即使它是IANA注册的媒体类型,我仍然需要请求/响应模式.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有