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

RESTful服务 - WSDL等效

如何解决《RESTful服务-WSDL等效》经验,为你挑选了5个好方法。

我一直在阅读有关REST和SOAP的内容,并了解为什么实现REST比使用SOAP协议更有益.但是,我仍然不明白为什么REST世界中没有"WSDL"等价物.我看过帖子说WSDL"没有必要",或者说它是多余的在REST世界中,但我不明白为什么.以编程方式绑定到定义并创建代理类而不是手动编码是不是总是有用的?我并不是要进入一场哲学辩论,只是寻找REST中没有WSDL的原因,或者为什么不需要它.谢谢.



1> joschi..:

在Web应用程序描述语言(WADL)基本上是WSDL中RESTful服务等同,但有是一个持续的争论这样的事情是否需要在所有.

Joe Gregorio撰写了一篇关于该主题的精彩文章,值得一读.


@dana:在写一个服务然后要求你也写客户端时似乎没什么意义吗?

2> Darrel Mille..:

WSDL描述了服务端点.REST客户端不应该耦合到服务器端点(即,不应该提前知道URL).REST客户端耦合在客户端和服务器之间传输的媒体类型上.

在客户端上自动生成类以包装返回的媒体类型可能是有意义的.但是,只要您开始围绕服务交互创建代理类,您就会开始模糊HTTP交互并冒险退回到RPC模型.


你能详细说明一下吗?我恐怕没有得到它.谢谢.
@BlueChippy媒体类型的规范是用老式的方式处理的.您要么找到规范的现有解析器,要么您自己阅读规范并自行编写.需要注意的重要一点是,目标是使媒体类型规范可以跨API重用.为每个API编写新的解析器都会失败.完成正确的REST是为了客户和服务器的独立发展的长期利益.

3> Eduardo Fabr..:

RSDL旨在像超媒体一样转向休息,换句话说,它比WSDL或WADL等服务描述符拥有更多信息.例如,它具有有关导航的信息,如超文本和超链接.

例如,给定当前资源,您有一个os链接到另一个相关资源.

但是,我没有找到支持此格式的Rest客户端或具有自动生成功能的Rest Server Solutions.

我认为关于它的结论还有很长的路要走.请参阅HTML长篇故事和W3C与浏览器大声笑.

有关像超媒体这样的休息的详细信息请查看:http://en.wikipedia.org/wiki/HATEOAS

注意:Roy Fielding在没有hypermidia方法的情况下批评了Rest Apis中的这些趋势:http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

我的结论:现在,WADL更常见的是像Camel CXF这样的Rest和Integration Frameworks已经支持WADL(生成和使用),因为它类似于WSDL,因此在这个迁移过程(SOAP to REST)中最容易理解.

让我们看看下一章;)



4> Alex Nolasco..:

以编程方式绑定到定义并创建代理类而不是手动编码是不是总是有用的?

全心全意地同意,这就是我个人使用Swagger.io的原因

Swagger是一个功能强大的开源框架,由大型工具生态系统支持,可帮助您设计,构建,记录和使用RESTful API.

所以基本上我使用Swagger来描述我的模型,端点等,然后我使用其他工具,如swagger-codegen来生成代理类,而不是手动编码.

另见:RAML



5> richard..:

有一个RSDL(restful服务描述语言),它等同于WSDL.以下URL描述了其实践http://en.wikipedia.org/wiki/HATEOAS 和http://en.wikipedia.org/wiki/RSDL.问题是我们有很多工具可以生成从wsdl到java或反向的代码.但我没有找到任何从RSDL生成代码的工具.

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