gpt4 book ai didi

perl - 用 WSDL 描述 Perl 接口(interface)

转载 作者:行者123 更新时间:2023-12-02 04:14:31 24 4
gpt4 key购买 nike

我一直在寻找将基于 Perl 的 SOAP 服务器添加到我们的系统的方法。每次我查看@Perl 中的 SOAP 工具时,我都对开发人员的开销似乎比 VS.net 世界中的人需要更多的开销感到失望。 (我已经找了很长时间了)

从这里查看其他问题来看,它看起来像 XML::Compile::SOAP似乎是最近流行的工具。我已经找到了一种通过它让我的代码作为服务的方法,但我还必须手动处理一个我从 Pod::WSDL 开始的 .WSDL 文件。 .

有没有我在 CPAN 或其他地方找不到的更直接的方法? Pod::WSDL默认情况下会吐出 rpc/encoded,我知道这不再是“最好的”方式了。文档说尚不支持文档/文字,阅读源代码您可以看到执行文档/文字的部分代码,但它不能直接与 XML::Compile::SOAP 一起使用.理想情况下,我在 POD 或 perl5 属性中的代码中添加一些注释,然后按下一个按钮,然后获取可以提供给 XML::Compile 包的 WSDL。

提前致谢。

最佳答案

据我所知,没有更好的方法。至少对于简单的服务。

我发现如果我以 RPC 思维方式编写 Web 服务,那么 SOAP::Lite 非常容易使用。

  • 在同一文件中编写一个带有子程序的小 perl 程序
  • 将 OO 风格、参数和返回值重构为 perl 对象。
  • 将子程序移动到一个单独的模块,测试。
  • 将子程序模块移动到服务器。在那里也复制数据传输对象模块。
  • 向服务器添加一个 SOAP::Lite 调度程序(几行代码)。
  • 在 perl 程序(客户端)的顶部添加几行 SOAP::Lite。完毕。

  • 确实,这使用了 SOAP 的 RPC/Encoded 风格,这是不受欢迎的。但是,如果您添加一点点 POD 标记,您可以生成 WSDL(按摩后).Net 客户端
    可以愉快地消费(至少,我用 Mono 测试过,第 3 方用 MS C# 测试过)

    正如您所说,Pod::WSDL 的输出确实需要按摩,我记得我必须在构建过程中修复一个命名空间。

    缺点是许多与 SOAP 相关的高级 XML 处理似乎缺失或没有很好地集成,并且 SOAP::Lite 和 Pod::WSDL 似乎有点垂死。

    但是对于简单的远程方法调用,传递 Perl 对象,我发现它比我尝试过的 Java 框架简单几个数量级。你的旅费可能会改变。

    关于perl - 用 WSDL 描述 Perl 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473401/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com