CGI :: Application :: Plugin :: REST实例脚本

时间:2013-11-10 04:13:40

标签: perl rest cgi cgi-application

我正在尝试使用CGI::Application::Plugin::REST构建Restful服务,但我不确定如何实际构建脚本。它是否与使用CGI :: Application相同,因此以下将是引用具有Perl库路径的模块的Instance Script?

    use CGI::Application::Plugin::REST qw( :all );

$self->rest_route(
        '/Stage/:id'    => {
            'GET'    => 'Stage',
        },
        '/Status/:id'   => {
            'GET'    => 'Status',
        },
        '/Metadate/:id' => {
            'GET'    => 'Metadata',
        },
$self->run();

我承认我可能正在向后学习CGI ::应用程序,并且我正在寻找一个简单的方法,因为一旦框架完成,其余部分是非常容易实现的。另外我不想使用MVC框架,因为我想从头开始构建它。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

既然你说要用它作为构建的结构,我建议把你的CGI :: App逻辑放在自己的模块中。这将使您在开始编写测试时更容易进行测试。你的App.pm看起来像普通的CGI :: App控制器:

package App;

use strict;
use parent 'CGI::Application';
use CGI::Application::Plugin::REST ':all';

sub setup {
    my $self = shift;
    $self->rest_route(
        '/some/route' => {
            'GET' => 'read_widget',
            'POST' => 'save_widget',
        },
    );
}

sub read_widget { ... }
sub save_widget { ... }
1;

然后在您的实例脚本中,Web服务器将调用,您只需use App; App->new->run;

You can find a fully functioning example in the C::A::P::REST test lib.