API::Client
HTTP API Thin-Client Abstraction
package main; use API::Client; my $client = API::Client->new(url => 'https://httpbin.org'); # $client->resource('post'); # $client->update(json => {...});
This package provides an abstraction and method for rapidly developing HTTP API clients.
This package integrates behaviors from:
Data::Object::Role::Buildable
Data::Object::Role::Stashable
Data::Object::Role::Throwable
This package uses type constraints from:
Types::Standard
This package has the following attributes:
debug(Bool)
This attribute is read-only, accepts (Bool) values, and is optional.
(Bool)
fatal(Bool)
logger(InstanceOf["FlightRecorder"])
This attribute is read-only, accepts (InstanceOf["FlightRecorder"]) values, and is optional.
(InstanceOf["FlightRecorder"])
name(Str)
This attribute is read-only, accepts (Str) values, and is optional.
(Str)
retries(Int)
This attribute is read-only, accepts (Int) values, and is optional.
(Int)
timeout(Int)
url(InstanceOf["Mojo::URL"])
This attribute is read-only, accepts (InstanceOf["Mojo::URL"]) values, and is optional.
(InstanceOf["Mojo::URL"])
user_agent(InstanceOf["Mojo::UserAgent"])
This attribute is read-only, accepts (InstanceOf["Mojo::UserAgent"]) values, and is optional.
(InstanceOf["Mojo::UserAgent"])
version(Str)
This package implements the following methods:
create(Any %args) : InstanceOf["Mojo::Transaction"]
The create method issues a POST request to the API resource represented by the object.
POST
# given: synopsis $client->resource('post')->create( json => {active => 1} );
delete(Any %args) : InstanceOf["Mojo::Transaction"]
The delete method issues a DELETE request to the API resource represented by the object.
DELETE
# given: synopsis $client->resource('delete')->delete;
dispatch(Str :$method = 'get', Any %args) : InstanceOf["Mojo::Transaction"]
The dispatch method issues a request to the API resource represented by the object.
# given: synopsis $client->resource('get')->dispatch;
# given: synopsis $client->resource('post')->dispatch( method => 'post', body => 'active=1' );
# given: synopsis $client->resource('get')->dispatch( method => 'get', query => {active => 1} );
# given: synopsis $client->resource('post')->dispatch( method => 'post', json => {active => 1} );
# given: synopsis $client->resource('post')->dispatch( method => 'post', form => {active => 1} );
# given: synopsis $client->resource('put')->dispatch( method => 'put', json => {active => 1} );
# given: synopsis $client->resource('patch')->dispatch( method => 'patch', json => {active => 1} );
# given: synopsis $client->resource('delete')->dispatch( method => 'delete', json => {active => 1} );
fetch(Any %args) : InstanceOf["Mojo::Transaction"]
The fetch method issues a GET request to the API resource represented by the object.
GET
# given: synopsis $client->resource('get')->fetch;
patch(Any %args) : InstanceOf["Mojo::Transaction"]
The patch method issues a PATCH request to the API resource represented by the object.
PATCH
# given: synopsis $client->resource('patch')->patch( json => {active => 1} );
prepare(Object $ua, Object $tx, Any %args) : Object
The prepare method acts as a before hook triggered before each request where you can modify the transactor objects.
before
# given: synopsis require Mojo::UserAgent; require Mojo::Transaction::HTTP; $client->prepare( Mojo::UserAgent->new, Mojo::Transaction::HTTP->new );
process(Object $ua, Object $tx, Any %args) : Object
The process method acts as an after hook triggered after each response where you can modify the transactor objects.
after
# given: synopsis require Mojo::UserAgent; require Mojo::Transaction::HTTP; $client->process( Mojo::UserAgent->new, Mojo::Transaction::HTTP->new );
resource(Str @segments) : Object
The resource method returns a new instance of the object for the API resource endpoint specified.
# given: synopsis $client->resource('status', 200);
serialize() : HashRef
The serialize method serializes and returns the object as a hashref.
hashref
# given: synopsis $client->serialize;
update(Any %args) : InstanceOf["Mojo::Transaction"]
The update method issues a PUT request to the API resource represented by the object.
PUT
# given: synopsis $client->resource('put')->update( json => {active => 1} );
Al Newkirk, awncorp@cpan.org
awncorp@cpan.org
Copyright (C) 2011-2019, Al Newkirk, et al.
This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".
Wiki
Project
Initiatives
Milestones
Contributing
Issues
To install API::Client, copy and paste the appropriate command in to your terminal.
cpanm
cpanm API::Client
CPAN shell
perl -MCPAN -e shell install API::Client
For more information on module installation, please visit the detailed CPAN module installation guide.