为什么SOAP没有WSDL?

为什么SOAP没有WSDL?,soap,wsdl,Soap,Wsdl,是否有充分的理由在不使用WSDL“文件”的情况下部署或使用SOAP服务 说明: 我所处的情况是,第三方创建了一个SOAP服务,该服务并不遵循他们也创建的WSDL文件。我认为为了使用这个服务,我不得不忽略WSDL文件。因此,我正在研究如何做到这一点 我真正想知道的是为什么有可能做到这一点?目的何在 它的设计是为了让我们能够使用糟糕的程序员提供的糟糕的服务吗?肯定有更好的理由。我几乎希望这不可能。然后我可以要求他们正确地编写它。WSDL应该是描述SOAP服务的公共文档,因此描述服务中所有可用方法的签

是否有充分的理由在不使用WSDL“文件”的情况下部署或使用SOAP服务

说明:

我所处的情况是,第三方创建了一个SOAP服务,该服务并不遵循他们也创建的WSDL文件。我认为为了使用这个服务,我不得不忽略WSDL文件。因此,我正在研究如何做到这一点

我真正想知道的是为什么有可能做到这一点?目的何在


它的设计是为了让我们能够使用糟糕的程序员提供的糟糕的服务吗?肯定有更好的理由。我几乎希望这不可能。然后我可以要求他们正确地编写它。

WSDL应该是描述SOAP服务的公共文档,因此描述服务中所有可用方法的签名

当然,可能有服务提供商希望向某些消费者公开某项服务,但他们不想公开该服务的签名,哪怕只是为了让不想使用该服务的人更难找到或尝试使用该服务。例如,服务的签名可能会公开有关其数据架构的一些私有信息

但是我不认为有任何理由可以编写与服务不匹配的WSDL。我会担心,如果他们不能获得正确的WSDL,服务的质量会是什么样子


要回答另一个问题,您可以在不使用WSDL的情况下使用服务。例如,如果您使用的是VisualStudio,您可以让VS基于不正确的WSDL为您构建一个代理,然后调整它以匹配正确的服务方法签名。您只需要确保代理中的数据契约和方法契约与实际的服务数据契约和方法契约相匹配。

是的,这是一个不使WSDL不可公开访问的好观点。然而,是否存在完全不使用的用例?要创建没有WSDL的SOAP服务,WSDL通常是一个公共文档。也许你不想公开你的服务签名。例如,您可以只向消费者提供他们所选语言的代理,消费者永远不需要知道服务签名是什么。。。。另一个用例(这里可能更相关)。。。他们不需要,他们只是不想,我明白了。最后,我可能会重新编写他们的服务。我想我能得到原始数据。写作部分相当琐碎。我不知道他们为什么做不好。