【问题标题】:How to create a well designed REST API in Perl with Mason?如何使用 Mason 在 Perl 中创建设计良好的 REST API?
【发布时间】:2017-02-10 13:50:52
【问题描述】:

我正在开发的网站是用 Perl 和 Mason 编写的,由 Apache2 (mod_perl) 托管。 我正在寻找一种设计良好、易于使用的 REST API “框架”,或者只是一种成熟的方法来创建一个。 Mojolicious 不是一个选项,因为我在端口 80 上将请求发送回 Apache2。 我在谷歌上几乎找不到任何与此相关的东西,而且我发现的东西看起来很垃圾。 我要请那些用 Perl 和 Mason 设计过 REST API 的人展示一个很好的例子。

所以,我发现是检查$r->method() 以查看使用了什么 REST 方法并相应地执行代码。如果可以这样写就好了:

POST => sub {
   ...
}
GET => sub { 
   ...
}
DELETE => sub {
   ...
}

这只是一个想法。

【问题讨论】:

  • “Mojolicious 不是一个选项,因为我在端口 80 上将请求发送回 Apache2”——我不明白这是怎么回事。
  • Mason 是一种模板语言。它根本不适合 REST。
  • 我真的不能为此写一个好的答案。我基本上给出了产品推荐,并指出你的问题是基于一个错误的前提。
  • 所有讲 PSGI 的东西都可以集成到 Apache 网络服务器中。如果它是托管的并且你只能做 CGI,它可能会很慢,但它会工作。

标签: perl rest mason


【解决方案1】:

Mason 的目标是构建 HTML 页面。使用它来构建 API 是非常错误的工具——它(大概)将返回 JSON 而不是 HTML。

要构建 API,您将创建数据结构,然后(希望)使用 CPAN 的 JSON 库之一将这些数据结构转换为 JSON。梅森在这个工作流程中确实没有位置。

而且我认为您不应该被限制为您的网站和 API 使用相同的技术。如果网站位于 http://www.example.com/,那么您可以将您的 API 放在 http://api.example.com/ 并在完全不同的技术(甚至是不同的 Web 服务器)上运行它。

如果对您的项目有更多了解,就很难给出具体的建议。但是,如果您的数据有 DBIx::Class 类,则可以查看 WebAPI::DBIC - 这比使用框架编写自己的代码要容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 2010-12-13
    相关资源
    最近更新 更多