dbi2http - Export DBI database as HTTP API (Riap::HTTP)
This document describes version 0.07 of dbi2http (from Perl distribution Plack-App-dbi2http), released on 2017-07-11.
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
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.
% dbi2http [options] <DBI dsn>
Unknown options will be passed to plackup.
Supply DBI username. Some driver do not need it (e.g. SQLite).
Supply DBI password. Some driver do not need it (e.g. SQLite).
Please visit the project's homepage at https://metacpan.org/release/Plack-App-dbi2http.
Source repository is at https://github.com/perlancar/perl-Plack-App-dbi2http.
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.
Plack::App::dbi2http, Riap, Riap::HTTP
perlancar <perlancar@cpan.org>
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.
To install Plack::App::dbi2http, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Plack::App::dbi2http
CPAN shell
perl -MCPAN -e shell install Plack::App::dbi2http
For more information on module installation, please visit the detailed CPAN module installation guide.