【问题标题】:Convert Perl library to SOAP将 Perl 库转换为 SOAP
【发布时间】:2010-11-21 03:20:44
【问题描述】:

我有一个 Perl 库并希望使用 SOAP 来执行以下操作:

  • 公开库中所有函数的列表,包括 每个函数和 perldoc 的签名(人类可读 函数及其参数的描述)。

  • 允许人们调用给定函数并在 SOAP 标准方式。

我可以尝试手动执行此操作,但哪些工具可以转换 Perl 将库“自动”添加到 SOAP 服务器?

特别是,我不想手动编写 WSDL 之类的东西。

我的目标是:为我的用户提供一个最小的“零装饰”界面 函数,并让其他人创建 HTTP 表单/Javascript/等 我的功能的接口。

更多细节稍后添加:

为了稍微分解一下,我需要这些东西:

% 将我的 Perl 函数的签名转换为 WSDL 的东西 文件。最终,我希望 WSDL URL 成为人们唯一的东西 需要访问我的 SOAP 服务。

% 将传入的 SOAP 请求转换为函数调用的东西。

% 将函数调用的结果转换为 客户端期望的类似 SOAP 的 XML。

这不会那么难吧?

【问题讨论】:

    标签: perl soap


    【解决方案1】:

    如果您的图书馆使用Moose,请尝试WSDL::Compile

    您可以使用WSDL::Generator::SchemaWSDL::Generator 转换任意结构。

    您可以使用SOAP::WSDL 从上面的 WSDL 生成 Perl 接口类。

    【讨论】:

    • 好吧,我不知道 Moose 是什么。这是一个简单的 Perl 库,类似于 github.com/barrycarter/bcapps/blob/master/bclib.pl,尽管这不是一个很好的例子,因为许多函数只能在本地工作。但总体思路是我在库中有简单的 Perl 函数。基本上,是否有一个服务器/软件可以为我完成整个事情,而无需在现有库上编写 SOAP 包装器代码?
    • @barrycarter,我认为不值得为这些功能公开 Web 服务。它们中的每一个都可以由更强大的模块更好地处理,其中许多模块位于 Perl 核心中。而且你肯定不希望随机的 HTTP 客户端调用你的dodie sub。
    • @friedo 道歉。那只是我碰巧在网上拥有的一个图书馆。我要转换的“真实”库(尚未在线)将更加复杂,可以访问外部数据源等。将其视为示例库:如果我可以使用库(例如,max 和min),然后我可以使用我真正想要转换的库来完成它。更直接地说:我喜欢写函数。我不喜欢写接口。帮帮我,欧比旺!
    • 真正的库有一组有限的函数,这些函数是在预先知道参数来自不受信任的来源的情况下精心编写的。一旦参数到达函数,函数就有责任保证事情的安全。但是,如果 SOAP 包装器获得了类似 `rm -rf /` 的参数,它不应该执行该代码,只需将其作为参数发送给正确的函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多