gpt4 book ai didi

web-services - 如何构建 perl 网络服务基础架构

转载 作者:行者123 更新时间:2023-12-04 05:14:30 25 4
gpt4 key购买 nike

我有许多用于管理多服务器基础架构的脚本。其中一些脚本需要 root 访问权限,一些需要访问数据库,而其中大部分都是基于 perl 的。我想将所有这些脚本转换为可以从不同应用程序执行的非常简单的 Web 服务。这些 Web 服务将接受常规请求输入,并在执行后输出 json。我在想我应该设置一个简单的 perl 调度程序,将其称为 action,它将执行日志记录、检查凭据和执行这些简单的脚本。像这样的东西:

http://host/action/update-dns?server=www.google.com&ip=192.168.1.1

这将调用 action perl 驱动程序,后者又会使用适当的参数(可能以某种方式清理)调用 update-dns 脚本并返回适当的 json回复。我希望此基础架构具有以下属性:

  • 所有脚本都位于一个地方。如果将新脚本放在那里,它会自动变为可调用。
  • 所有脚本都需要有某种形式的 list 来描述,谁可以调用它(属于某个 ldap 组),它需要什么参数,响应是什么等等。这样就可以 self 解释了。
  • 所有脚本都根据谁做了什么以及响应是什么来记录。
  • 如果有命令行方式来执行类似 # action update-dns --server=www.google.com --up=192.168.1.1
  • 的操作,那就太好了

我是否必须从头开始,或者是否已经有一些我可以利用的东西?

最佳答案

您可能想查看我的框架 Sub::Spec .文档仍然很少,但我已经将它用于多个项目,包括 my other modules in CPAN .

想法是您在函数中编写代码,为这些函数装饰/添加足够的元数据(包括一些摘要、参数规范等),并且会有工具链来处理您需要的东西,例如在命令行(使用 Sub::Spec::CmdLine 和通过 HTTP(使用 Sub::Spec::HTTP::ServerSub::Spec::HTTP::Client )运行您的函数。

有一个sample project处于起步阶段。另请查看 http://gudangapi.com/ .例如,函数 GudangAPI::API::finance::currency::id::bca::get_bca_exchange_rate()将作为 API 函数通过 HTTP API 访问。

Contact me如果您有兴趣部署这样的东西。

关于web-services - 如何构建 perl 网络服务基础架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6336270/

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