NAME
API::CLI - Generic Framework for REST API Command Line Clients
SYNOPSIS
use API::CLI::App::Spec;
package API::CLI::MetaCPAN;
use base 'API::CLI';
sub add_auth {
}
package main;
my $appspec_file = "$Bin/../metacpancl-appspec.yaml";
my $spec = API::CLI::App::Spec->read($appspec_file);
my $runner = App::Spec::Run->new(
spec => $spec,
cmd => API::CLI::MetaCPAN->new(
dir => "$ENV{HOME}/.githubcl",
),
);
$runner->run;
DESCRIPTION
This is an experimental first version.
With API::CLI you can create a simple commandline client for any REST API which has an OpenAPI specification.
# 1. parameter: owner
# 2. parameter: repo
% githubcl GET /repos/:owner/:repo perlpunk API-CLI-p5
The generated help will show all methods, endpoints, parameters and options.
Query parameters are represented as command line options starting with --q-
:
% metacpancl GET /pod/:module App::Spec --q-content-type text/x-pod
=head1 NAME
App::Spec - Specification for commandline apps
...
It can also generate shell tab completion:
% metacpancl <TAB>
GET -- GET call
POST -- POST call
help -- Show command help
% digitaloceancl GET /<TAB>
/account -- Account information
/droplets -- List all droplets
/droplets/:id -- Retrieve a droplet by id
% metacpancl GET /pod/:module App::Spec --q-content-type text/<TAB>
text/html text/plain text/x-markdown text/x-pod
Bash users: Note that completion for options and parameters currently does not work.
METHODS
- add_auth
- apicall
- dir
- read_appconfig
- openapi
SEE ALSO
- https://github.com/APIs-guru/openapi-directory
- App::Spec - Commandline Interface Framework
LICENSE
This library is free software and may be distributed under the same terms as perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 183:
You forgot a '=back' before '=head1'