C# 使用基于rest的服务的WSDL有什么意义?

C# 使用基于rest的服务的WSDL有什么意义?,c#,wcf,web-services,rest,C#,Wcf,Web Services,Rest,如果基于REST的web服务像获取和发布url以及解析响应这样简单,那么我们到底需要wsdl吗?重点是什么。我知道当使用基于SOAP的服务时,它被用来构造SOAP请求和响应,但我不明白为什么visual studio在我创建基于REST的服务时为我提供wsdl…没有意义。WSDL只是服务公开内容和调用方式的标准化描述。您不需要WSDL,但您需要某种方式来记录可以对您的服务执行的操作,以便客户端知道如何调用它。使用WCF创建的REST服务在WSDL中没有任何意义,因为WCF只支持WSDL1.1(或

如果基于REST的web服务像获取和发布url以及解析响应这样简单,那么我们到底需要wsdl吗?重点是什么。我知道当使用基于SOAP的服务时,它被用来构造SOAP请求和响应,但我不明白为什么visual studio在我创建基于REST的服务时为我提供wsdl…

没有意义。WSDL只是服务公开内容和调用方式的标准化描述。您不需要WSDL,但您需要某种方式来记录可以对您的服务执行的操作,以便客户端知道如何调用它。

使用WCF创建的REST服务在WSDL中没有任何意义,因为WCF只支持WSDL1.1(或1.0),它不能描述REST seevice。如果您尝试使用为WCF REST服务生成的WSDL来创建客户机代理,您将无法调用该服务。VisualStudioTemplatesforREST不公开元数据,所以只有自己添加serviceMetada行为(可能还有mex端点)时,才会得到无用的WSDL


WSDL 2.0和WADL支持对REST服务的描述,这一点与SOAP服务类似——描述您可以用REST方式对服务执行的操作。

WSDL旨在允许客户端主要在设计时发现服务功能。REST具有超媒体约束,要求所有服务功能在运行时都可以通过它们返回的链接表示进行发现


适当的REST服务是自然可发现的,因此不需要另外的WSDL规范。

那么如何使REST服务“自然”可发现呢?我了解REST服务提供什么的唯一方法是阅读API文档。