Perl: Amon2::Plugin::Web::JSON で Teng → JSON 出力

Amon2::Plugin::Web::JSON

Amon2 のプラグイン。render_json が使える。
JSON のプラグインを読み込んでおく。

perl: helloworld/lib/helloworld/Web.pm

# load plugins
__PACKAGE__->load_plugins(
    'Web::FillInFormLite',
    'Web::JSON',
);

Web::JSON を追加。ちなみに Amon2 に追加可能なプラグインは以下。
Amon2 6.02

あとは Teng からの出力を一回ハッシュにマップして JSON 出力します。

perl: helloworld/lib/helloworld/Web/C/Root.pm

sub get {
    my ($class, $c) = @_;
    my @members = $c-> db-> search(
        member => {}, {limit => 10, offset => 0, order_by =>  {'id' =>  'DESC'}}
    );
    my @json = ();
    foreach my $member (@members) {
        push (@json, { id => $member->id, name => $member->name });
    }
    return $c->render_json(\@json);
}

Amon2 のプラグインの作り方