【问题标题】:How the term "WSDL" is related to programming when consuming webservices?使用 Web 服务时,术语“WSDL”如何与编程相关联?
【发布时间】:2011-11-03 06:34:23
【问题描述】:

我已经阅读了几篇关于 WSDL 和 SOAP 的文章,但我仍然对这些术语的实际含义感到困惑。现在,我知道您需要构造一个请求消息才能使用 Web 服务,它是发布还是获取消息。在谈论基于 SOAP 的 Web 服务时,您需要通过构造的符合 SOAP 的 XML 文档与 Web 服务器进行通信。因此,您需要手动构建它或使用适当的库。当这个东西出现时,WSDL 呢?

Wikipedia 指出“WSDL 通常与 SOAP 和 XML Schema 结合使用,以通过 Internet 提供 Web 服务。连接到 Web 服务的客户端程序可以读取 WSDL 文件以确定服务器上可用的操作。” .所以这意味着 WSDL 只是一些描述 Web 服务器上可用服务的文件,我想,这种通信也必须使用 SOAP 完成。但是,如果我知道我使用的所有 Web 服务,我的意思是,如果它们是硬编码的,那么这意味着我根本不会处理 WSDL。恕我直言 WSDL 仅适用于非常智能的系统,其中在使用 Web 服务之前,程序需要读取状态并确定要读取的内容。我说的对吗?

【问题讨论】:

  • 简而言之:WSDL 描述了 Web 服务的接口。 自动化工具然后可以将 WSDL 转换为类/方法,它可以使用而无需手动而不必构造 SOAP XML。因此,它提供了一个“定义明确”的接口,可以加快开发速度并减少错误。

标签: objective-c web-services soap wsdl


【解决方案1】:

WSDL 是一种描述 Web 服务具有哪些操作(方法)以及这些方法的输入/输出的方法。过去,在移动设备流行之前,WSDL 被用作创建所谓的存根/代理类的一种手段。

这些类基本上是由特定的生成器(例如WSDL2Java for JavaWSDL.exe for .NET)生成的,它们的工作是读取 WSDL、获取方法及其输入/输出并生成特定于语言的类以本机公开这些服务.实际上,它对用户和 Web 服务的消费者隐藏了 SOAP 消息,他们正在处理他们选择的语言的本机类。

因此,带有 SOAP 的 WebService 被誉为异构系统之间的集成方式,允许独立于语言的通信。例如,服务的实现语言可以是 C#,但 Web 服务的使用者可以是 Java。如果消费者是 Java 程序员,通过使用 WSDL 自动生成类,Java 程序员甚至不需要了解 SOAP 或 XML 的概念。所有的程序员都知道他们在处理 Java 对象。

如今,SOAP 比过去更加透明和广为人知。因此,通过选择程序员可以直接对 SOAP 消息进行编码,而无需通过 WSDL 生成代码

【讨论】:

    猜你喜欢
    • 2011-06-09
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多