嗨,我正在寻找一个Perl RESTful框架,必须:
在apache2/mod_perl2下工作
很简单
优雅
要轻松
变通
我只是在做梦,还是可以避免"滚动自己"的做法?
你会推荐什么样的框架?
我已经将Dancer(github)用于我的一些小型项目.它非常优雅,很容易快速完成任务.它的灵感来自Ruby框架Sinatra.
它很简单:
#!/usr/bin/env perl use Dancer; get '/' => sub { 'Hello world!' }; dance;
如果你看一下测试套件,舞者的文档和可信度都很好:约500个测试覆盖了超过80%的源代码树.
它符合PSGI/Plack并且几乎没有依赖性.版本1.0应该很快发布(可能是本周末).
见舞者网站保持关注.
另一个需要考虑的是Mojolicious,它允许以非常直接的方式编写和测试RESTful API.
我最喜欢的Perl Web应用程序框架是CGI :: Application.它非常轻量级(您可以继承的单个基类),并且处理Web应用程序编程的重复性任务所需的最低限度,以及其他方式.您可以在正式的MVC设计中使用它,或者根据您的需要做更特别的事情.
它有一个简单的插件架构,允许您轻松添加对 Template Toolkit (开箱即用的HTML :: Template)会话, 身份验证, JSON, 流媒体等的支持.
最后,为了创建类似REST的友好URL,有一个优秀的CGI :: Application :: Dispatch,它为基于URL的调度提供了一个强大的基于规则的引擎.
此外,尽管它的名称,它在mod_perl 1和2下无缝地工作.
我想你会发现Squatting
所有那些盒子都打勾!
我用它写了很多小的RESTful应用程序.它非常适合这种情况,并且很高兴与您合作.
这里有一些更多的链接:
GitHub回购
讨论组/邮件列表
一些博文
蹲在mod_perl2上
这是一个简单的"你好世界!" 例:
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配置中:
use Simple 'On::MP20'; Simple->init SetHandler perl-script PerlHandler Simple->mp20
你走吧!
在这里,我还要提及一些适合该法案的其他框架:
Mojolicious::Lite
Dancer
我说"传递提及",因为我没有使用其中任何一个,我不确定是否使用mod_perl2工作(开箱即用).仍PSGI / Plack
指日可待,这将不会太久的问题;-)
/ I3az /