您好我正在寻找一个必须的Perl RESTful框架:
我只是在做梦,还是可以避免'滚动我们自己'的做法?
您会推荐哪种框架?
答案 0 :(得分:17)
我已将Dancer(github)用于我的一些小型项目。它非常优雅,很容易快速完成任务。它的灵感来自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 Toolkit (HTML::Template支持开箱即用)sessions, authentication, JSON, streaming, 等等。
最后,为了创建类似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服务
编辑: - 我说的“新”框架是那些具有良好测试框架的框架(如rails / spring / Seam,催化剂除了正常的单元测试之外还不容易进行测试)以及许多开发人员正在构建应用程序(围绕这些框架的社区更加活跃)。这就是为什么我不认为Catalyst也非常灵活。
答案 6 :(得分:2)
我终于推出了自己的纯mod_perl2 RESTful API专用框架: http://code.google.com/p/apache2rest/
除了必要之外,没有任何东西是内置的。其余的是可扩展的(或将是)。我看了你所有的建议,它们似乎都解决了很多问题(DBI管理,ORM,模板引擎,嵌入式服务器......)。
这就是我写这个的原因。我希望你会发现它很有用。
答案 7 :(得分:0)
很抱歉回答得有点迟了,但我在link text中描述了一个适用于我的REST框架。它使添加新资源变得非常简单;我几乎不必编写超过特定于资源的业务逻辑;该框架负责其余部分。