我已经构建了大量的SOAP Web服务,但我正在为特定的项目构建一个REST Web服务,我想知道人们用于REST服务的'WSDL'是什么,或者甚至是否需要它.
REST实际上只在资源上使用HTTP谓词(GET,PUT,POST,DELETE).资源上的所有操作都应该以这种方式表示.当您无法以适合其他三种方式表达业务逻辑时,POST将用作捕获所有内容.这就是为什么REST服务实际上没有WSDL的原因,因为您在资源上只有4个方法.请注意,Zend Framework REST库实际上并不是RESTful,而是更简单的旧XML(POX)服务.
虽然Sam认为RESTful Web应用程序不需要直接模拟WSDL,但是有一个XML词汇表可用于描述RESTful Web应用程序:WADL或Web应用程序描述语言.在我的公司,我们主要使用WADL为我们想要构建的给定服务定义规范 - 我们通常不以编程方式使用它.也就是说,WADL主页包含一些用于代码生成的Java工具,Restlet,Java REST框架,包括WADL扩展,用于基于WADL动态连接应用程序,并基于有线应用程序动态生成WADL.我是WADL的粉丝,建议您查看一下.
您可以尝试使用Swagger(现在的OpenAPI),它允许使用JSON开放标准来描述REST服务.