【问题标题】:PHP SoapClient: Get list of all functions with parametersPHP SoapClient:获取所有带参数的函数列表
【发布时间】:2012-11-01 19:23:07
【问题描述】:

我正在使用来自第三方供应商的 SOAP Web 服务,并且我们在服务中的功能随机更改(重命名参数、添加和删除参数)方面遇到了一些问题。显然这不是我们希望看到的,所以我正在尝试编写一个脚本,以便在 Web 服务中发生任何变化时通知我。

使用 PHP 的 SoapClient,我可以提取 web 服务中所有函数的列表,但是所有函数都列出了一个参数,该参数似乎是其余参数的容器。我在 WSDL 模式下使用 SoapClient,所以我认为有一些方法可以为每个函数提取完整的参数列表。

有什么建议吗?

【问题讨论】:

  • 当你说拉一个完整的参数列表时,你是想在幕后还是想看看它? wsdl 应该向您展示所有这些。
  • 该供应商应该提供版本化的 API,以便清楚哪些仍然受支持以及下一个看起来如何。显然不是这样,你只能指纹我认为的 WSDL。
  • @Robert - 我想创建一种自动化的方式来记录存在的函数以及它们在给定时刻需要的参数。如果我需要手动解析 WSDL 来做,我会这样做,但我希望可能有更简单的方法。
  • @hakre - 对于如何通过保存比直接 WSDL 更人性化的列表来完成此任务,您有什么建议吗?
  • 我不知道如何在不使用 wsdl 的情况下获取参数,如果他们更新他们的代码,他们应该为您提供更新,尤其是在它破坏现有功能的情况下。这听起来更像是一个流程问题,而不是一个开发问题。因此,要回答您的问题,是的,您需要解析 wsdl,但不必让供应商告诉您事情正在发生变化,并给您充足的时间来调整您的系统以接受它。

标签: php soap parameters wsdl soap-client


【解决方案1】:

按照上面一些 cmets 所说的,如果您无法从 SOAP 客户端获得满足您需求的方法/参数的准确反映,那么当然没有什么可以阻止您采取WSDL 本身的哈希值,并将其与您存储的哈希值进行比较以查看是否有任何更改。

如果您想了解有关更改的更多详细信息,那么您可以更进一步,使用一些 XML 库解析 WSDL 并比较节点的更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2012-09-06
    • 2018-09-18
    • 1970-01-01
    • 2013-01-04
    • 2013-09-14
    • 1970-01-01
    相关资源
    最近更新 更多