Web::Dispatcher::Simple, DBIx::Simple::DataSection, Text::MicroTemplate::DataSectionで3分Sinatra風quick hack
Web::Dispatcher::Simple, DBIx::Simple::DataSectionとquick hackをするためのモジュールを作ってみました。これに加えて、Text::MicroTemplate::DataSectionを使うことで、3分くらいでsinatra風なアプリが簡単に作れます。
app.psgiを、以下のように書きます。
use strict; use warnings; use Web::Dispatcher::Simple; use DBIx::Simple::DataSection; use Text::MicroTemplate::DataSection qw(render_mt); my $db = DBIx::Simple::DataSection->connect('dbi:SQLite:dbname=:memory:', '', '', { RaiseError => 1 }); $db->query_by_sql('create.sql'); my $app = router { get '/api' => sub { my $req = shift; my $hello = render_mt('index.mt'); my $res = $req->new_response(200); $res->body($hello); $res; }, post '/comment/{id}' => sub { my ($req, $args) = @_; my $id = $args->{id}; $db->query_by_sql('insert_person', $id); my $res = $req->new_response(200); $res; } }; __DATA__ @@ create.sql CREATE TABLE person (id) @@ insert_person INSERT INTO person VALUES (??) @@ index.mt <html> <body>Hello</body> </html>
あとは、plackupで動かすだけです!
Enjoy!
# あとは、レスポンスをもっと簡単に返せると、sinatra風ですよね!