你推荐什么Perl RESTful框架?

时间:2009-11-04 17:30:46

标签: perl rest apache2 mod-perl2

您好我正在寻找一个必须的Perl RESTful框架:

  • 在apache2 / mod_perl2下工作
  • 简单
  • 优雅
  • 轻盈
  • 灵活

我只是在做梦,还是可以避免'滚动我们自己'的做法?

您会推荐哪种框架?

8 个答案:

答案 0 :(得分:17)

我已将Dancergithub)用于我的一些小型项目。它非常优雅,很容易快速完成任务。它的灵感来自Ruby框架Sinatra

这很简单:

#!/usr/bin/env perl
use Dancer;

get '/' => sub {
    'Hello world!'
};

dance;

答案 1 :(得分:10)

如果你看一下测试套件,那么Dancer就有很好的文档和可信度:~500个测试覆盖了超过80%的源代码树。

它符合PSGI / Plack并且几乎没有依赖性。版本1.0应该很快发布(可能是本周末)。

请继续关注the dancer website

答案 2 :(得分:8)

另一个需要考虑的问题是Mojolicious,它允许以非常直接的方式编写和测试RESTful API。

答案 3 :(得分:7)

我最喜欢的Perl Web应用程序框架是CGI::Application。它非常轻量级(您可以继承的单个基类),并且处理Web应用程序编程的重复性任务所需的最低限度,以及其他方式。你可以在正式的MVC设计中使用它,或者做更多 ad hoc 的事情,如果这是你想要的。

它有一个简单的plugin架构,允许您轻松添加支持 Template ToolkitHTML::Template支持开箱即用)sessionsauthenticationJSONstreaming, 等等。

最后,为了创建类似REST的友好URL,有一个优秀的CGI::Application::Dispatch,它为基于URL的调度提供了一个强大的基于规则的引擎。

此外,尽管它的名称,它在mod_perl 1和2下无缝地工作。

答案 4 :(得分:7)

我想你会发现Squatting勾选所有这些框!

我用它写了很多小的RESTful应用程序。它非常适合这种情况,并且很高兴与您合作。

以下是一些链接:

这是一个简单的“你好世界!”例如:

use strict;
use warnings;

{
  package Simple;
  use base 'Squatting';
}

{ 
  package Simple::Controllers;
  use Squatting ':controllers';

  our @C = (
    C(
      Index => [ '/' ],
      get   => sub { 
        my ($self) = @_;
        my $v = $self->v;
        $v->{hello} = 'Hello World!';
        $self->render( 'hello' );
      },
    ),
  );
}

{
  package Simple::Views;
  use Squatting ':views';
  use HTML::AsSubs;

  our @V = (
    V(  'html',

      layout => sub { 
        my ($self, $v, @yield) = @_;
        html(
          head( title('Simple web app') ),
          body( @yield ),
        )->as_HTML;
      },

      hello => sub {
        my ($self, $v) = @_;
        p( $v->{hello} );
      },
    ),
  );
}

在相关位置保存为 Simple.pm ,并确保以下内容位于您的Apache配置中:

<Perl>
  use Simple 'On::MP20';
  Simple->init
</Perl>

<Location />
  SetHandler perl-script
  PerlHandler Simple->mp20
</Location>

远离你!

在这里,我还要提及其他一些适合该法案的框架:

我说“传递提及”因为我没有使用其中任何一种,我不确定是否使用mod_perl2工作(开箱即用)。仍然只有PSGI / Plack即将到来,这不会是一个问题太久了; - )

/ I3az /

答案 5 :(得分:4)

Catalyst是一个MVC框架,可用于制作Restfull服务

  • 它在apache2 / mod_perl2下运行
  • 它简单而优雅,但恕我直言不如大多数“新”MVC框架
  • 是的......它很轻。
  • 不要以为它真的很灵活.. :( ..

编辑:   - 我说的“新”框架是那些具有良好测试框架的框架(如rails / spring / Seam,催化剂除了正常的单元测试之外还不容易进行测试)以及许多开发人员正在构建应用程序(围绕这些框架的社区更加活跃)。这就是为什么我不认为Catalyst也非常灵活。

答案 6 :(得分:2)

我终于推出了自己的纯mod_perl2 RESTful API专用框架: http://code.google.com/p/apache2rest/

除了必要之外,没有任何东西是内置的。其余的是可扩展的(或将是)。我看了你所有的建议,它们似乎都解决了很多问题(DBI管理,ORM,模板引擎,嵌入式服务器......)。

这就是我写这个的原因。我希望你会发现它很有用。

答案 7 :(得分:0)

很抱歉回答得有点迟了,但我在link text中描述了一个适用于我的REST框架。它使添加新资源变得非常简单;我几乎不必编写超过特定于资源的业务逻辑;该框架负责其余部分。