WebService::Pokemon - A module to access the Pokémon data through RESTful API from http://pokeapi.co.
use WebService::Pokemon; my $pokemon_api = WebService::Pokemon->new; # By id. my $pokemon = $pokemon_api->resource('berry', 1); # By name. my $pokemon = $pokemon_api->resource('berry', 'cheri');
WebService::Pokemon is a Perl client helper library for the Pokemon API (pokeapi.co).
Source repo at https://github.com/kianmeng/webservice-pokemon.
If you have Docker installed, you can build your Docker container for this project.
$ docker build -t webservice-pokemon . $ docker run -it -v $(pwd):/root webservice-pokemon bash # cpanm --installdeps --notest .
Setting up the required packages.
$ milla authordeps --missing | cpanm $ milla listdeps --missing | cpanm
Check you code coverage.
$ milla cover
Several ways to run the test.
$ milla test $ milla test --author --release $ AUTHOR_TESTING=1 RELEASE_TESTING=1 milla test $ AUTHOR_TESTING=1 RELEASE_TESTING=1 milla run prove t/01_instantiation.t
Release the module.
$ milla build $ milla release
Construct a new WebService::Pokemon instance. Optionally takes a hash or hash reference.
# Instantiate the class. my $pokemon_api = WebService::Pokemon->new;
The URL of the API resource.
# Instantiate the class by setting the URL of the API endpoints. my $pokemon_api = WebService::Pokemon->new({api_url => 'http://example.com/api/v2'}); # Or after the object was created. my $pokemon_api = WebService::Pokemon->new; $pokemon_api->api_url('http://example.com/api/v2');
The cache directory of the HTTP reponses. By default, all cached data is stored as files in /tmp/cache/.
# Default cache engine is file-based storage. my $pokemon_api = WebService::Pokemon->new; # Or we define our custom cache engine with settings. my $pokemon_api = WebService::Pokemon->new( cache => CHI->new( driver => 'File', namespace => 'restcountries', root_dir => $ENV{PWD} . '/tmp/cache/', ) ); # Or after the object was created. my $pokemon_api = WebService::Pokemon->new; $pokemon_api->cache( cache => CHI->new( driver => 'File', namespace => 'restcountries', root_dir => $ENV{PWD} . '/tmp/cache/', ) );
Get the details of a particular resource with optional id or name; limit per page, or offset by the record list.
# Get paginated list of available berry resource. my $berry = $pokemon_api->resource('berry'); # Or by page through limit and pagination. my $berry = $pokemon_api->resource('berry', undef, 60, 20); # Get by id. my $berry_firmness = $pokemon_api->resource('berry-firmnesses', 1); # Get by name. my $berry_firmness = $pokemon_api->resource('berry-firmnesses', 'very-soft');
This software is Copyright (c) 2018 by Kian Meng, Ang.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)
Kian Meng, Ang <kianmeng@users.noreply.github.com>
To install WebService::Pokemon, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WebService::Pokemon
CPAN shell
perl -MCPAN -e shell install WebService::Pokemon
For more information on module installation, please visit the detailed CPAN module installation guide.