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.