Browse Source

Merge pull request #4 from vividsnow/master

merged perl Plack from vividsnow/master
Peter Corlett 12 years ago
parent
commit
526031c4ed
1 changed files with 23 additions and 0 deletions
  1. 23 0
      plack/app.psgi

+ 23 - 0
plack/app.psgi

@@ -0,0 +1,23 @@
+# plackup -s Starman --workers N -E deployment app.psgi
+# -or-
+# plackup -s Twiggy::Prefork --max_workers N -E deployment app.psgi
+use v5.16;
+use Plack::Builder;
+use Plack::Request;
+use JSON::XS 'encode_json';
+use DBI;
+
+my $dbh = DBI->connect('dbi:mysql:dbname=test', 'root') || die $!;
+my $sth = $dbh->prepare('SELECT randomnumber FROM world WHERE id = ?');
+my $header = ['Content-Type' => 'application/json'];
+
+builder {
+    mount '/json' => sub { [ 200, $header, [ encode_json({ message => 'Hello, World!' })] ] },
+    mount '/dbi' => sub { [ 200, $header, [ encode_json([
+        map { id => $_->[0] + 0, randomnumber => $_->[1] },
+        grep exists $_->[1],
+        map [$_, $sth->execute($_) && $sth->fetchrow_array],
+        map int rand 10000 + 1,
+        1..Plack::Request->new(shift)->param('queries')//1
+    ]) ] ] }
+};