【问题标题】:What is the point in a WSDL with a rest based service?具有基于休息的服务的 WSDL 有什么意义?
【发布时间】:2011-06-17 11:45:41
【问题描述】:

如果基于 REST 的 Web 服务就像 GET 和 POST 到 url 并解析响应一样简单,那么我们究竟需要 wsdl 吗?重点是什么。我知道在使用基于 SOAP 的服务时,它用于构建 SOAP 请求和响应,但我真的不明白为什么 Visual Studio 在我创建基于 REST 的服务时为我提供 wsdl...

【问题讨论】:

    标签: c# wcf web-services rest


    【解决方案1】:

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

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

    【讨论】:

    • 那么如何让 REST 服务“自然地”被发现呢?我曾经弄清楚 REST 服务提供什么的唯一方法是阅读 API 文档。
    【解决方案2】:

    对于使用 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 方式。

    【讨论】:

      【解决方案3】:

      没有意义。 WSDL 只是对服务公开什么以及如何调用的标准化描述。您需要 WSDL,但您需要某种方式来记录您的服务可以做什么,以便客户知道如何调用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-11
        • 2012-08-21
        • 1970-01-01
        • 2016-07-05
        • 1970-01-01
        相关资源
        最近更新 更多