The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

dbi2http - Export DBI database as HTTP API (Riap::HTTP)

VERSION

This document describes version 0.07 of dbi2http (from Perl distribution Plack-App-dbi2http), released on 2017-07-11.

SYNOPSIS

Simplest usage (will run an HTTP server):

 % dbi2http dbi:SQLite:dbname=/path/to/your.db

To specify DBI user and password:

 % dbi2http dbi:mysql:database=foo --user dbuser --pass dbpass

Unknown options will be passed to plackup:

 % dbi2http dbi:mysql:test --user dbuser --pass dbpass --port 5001 -s Starman

See other options:

 % dbi2http --help

After the server is running, you can query it from another console, e.g. via curl:

 % curl http://localhost:5000/list_tables
 countries
 continents

 % curl http://localhost:5000/list_columns?table=countries
 id
 ind_name
 eng_name
 tags

 % curl 'http://localhost:5000/list_columns?table=countries&detail=1&-riap-fmt=json-pretty'
 [
    200,
   "OK",
   [
      {
         "pos" : 1,
         "name" : "id",
         "type" : "text"
      },
      {
         "name" : "ind_name",
         "pos" : 2,
         "type" : "text"
      },
      {
         "type" : "text",
         "name" : "eng_name",
         "pos" : 3
      },
      {
         "pos" : 4,
         "name" : "tags",
         "type" : "text"
      }
   ]
 ]

 % curl 'http://localhost:5000/list_rows?table=countries'
 China   cn      Cina    panda
 Indonesia       id      Indonesia       bali,tropical
 Singapore       sg      Singapura       tropical
 United States of America        us      Amerika Serikat

 % curl 'http://localhost:5000/list_rows?table=countries&-riap-fmt=text-pretty'
 .-----------------------------------------------------------------.
 | eng_name                   id   ind_name          tags          |
 |                                                                 |
 | China                      cn   Cina              panda         |
 | Indonesia                  id   Indonesia         bali,tropical |
 | Singapore                  sg   Singapura         tropical      |
 | United States of America   us   Amerika Serikat                 |
 `-----------------------------------------------------------------'

Or use App::riap, a client shell for Riap (with filesystem-like API browsing and shell tab completion):

 % riap http://localhost:5000/
 riap /> ls
 list_columns
 list_rows
 list_tables

 riap /> list_tables
 countries
 continents

 riap /> list_columns --table countries --detail

 riap /> list_rows --table countries

DESCRIPTION

This is a one-liner shortcut to export your DBI database as HTTP API (using Riap::HTTP protocol). It is a wrapper to a PSGI app (Plack::App::dbi2http) which does the heavy-lifting. So what this script does is basically create a config file on-the-fly and run plackup to serve the PSGI application.

USAGE

 % dbi2http [options] <DBI dsn>

OPTIONS

Unknown options will be passed to plackup.

--user => str

Supply DBI username. Some driver do not need it (e.g. SQLite).

--pass => str

Supply DBI password. Some driver do not need it (e.g. SQLite).

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Plack-App-dbi2http.

SOURCE

Source repository is at https://github.com/perlancar/perl-Plack-App-dbi2http.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Plack-App-dbi2http

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

Plack::App::dbi2http, Riap, Riap::HTTP

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017, 2015, 2014 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.