【发布时间】:2011-06-17 11:45:41
【问题描述】:
如果基于 REST 的 Web 服务就像 GET 和 POST 到 url 并解析响应一样简单,那么我们究竟需要 wsdl 吗?重点是什么。我知道在使用基于 SOAP 的服务时,它用于构建 SOAP 请求和响应,但我真的不明白为什么 Visual Studio 在我创建基于 REST 的服务时为我提供 wsdl...
【问题讨论】:
标签: c# wcf web-services rest
如果基于 REST 的 Web 服务就像 GET 和 POST 到 url 并解析响应一样简单,那么我们究竟需要 wsdl 吗?重点是什么。我知道在使用基于 SOAP 的服务时,它用于构建 SOAP 请求和响应,但我真的不明白为什么 Visual Studio 在我创建基于 REST 的服务时为我提供 wsdl...
【问题讨论】:
标签: c# wcf web-services rest
WSDL 旨在允许客户发现服务功能,主要是在设计时。 REST 具有超媒体约束,要求所有服务功能都应在运行时通过它们返回的链接表示来发现。
适当的 REST 服务是自然可发现的,因此不需要另外的 WSDL 规范。
【讨论】:
对于使用 WCF 创建的 REST 服务,WSDL 没有任何意义,因为 WCF 仅支持无法描述 REST 服务的 WSDL 1.1(或 1.0)。如果您尝试使用为 WCF REST 服务生成的 WSDL 创建客户端代理,则无论如何您都无法调用该服务。 REST 的 Visual Studio 模板不公开元数据,因此只有在您自己添加 serviceMetada 行为(可能还有 mex 端点)时,您才会获得无用的 WSDL。
WSDL 2.0 和 WADL 支持对 REST 服务的描述,这一点与 SOAP 服务类似——描述您可以使用服务做什么,但以 REST 方式。
【讨论】:
没有意义。 WSDL 只是对服务公开什么以及如何调用的标准化描述。您需要 WSDL,但您需要某种方式来记录您的服务可以做什么,以便客户知道如何调用它。
【讨论】: