NAME API::Client ABSTRACT HTTP API Thin-Client Abstraction SYNOPSIS package main; use API::Client; my $client = API::Client->new(url => 'https://httpbin.org'); # $client->resource('post'); # $client->update(json => {...}); DESCRIPTION This package provides an abstraction and method for rapidly developing HTTP API clients. INTEGRATES This package integrates behaviors from: Data::Object::Role::Buildable Data::Object::Role::Stashable Data::Object::Role::Throwable LIBRARIES This package uses type constraints from: Types::Standard ATTRIBUTES This package has the following attributes: debug debug(Bool) This attribute is read-only, accepts (Bool) values, and is optional. fatal fatal(Bool) This attribute is read-only, accepts (Bool) values, and is optional. logger logger(InstanceOf["FlightRecorder"]) This attribute is read-only, accepts (InstanceOf["FlightRecorder"]) values, and is optional. name name(Str) This attribute is read-only, accepts (Str) values, and is optional. retries retries(Int) This attribute is read-only, accepts (Int) values, and is optional. timeout timeout(Int) This attribute is read-only, accepts (Int) values, and is optional. url url(InstanceOf["Mojo::URL"]) This attribute is read-only, accepts (InstanceOf["Mojo::URL"]) values, and is optional. user_agent user_agent(InstanceOf["Mojo::UserAgent"]) This attribute is read-only, accepts (InstanceOf["Mojo::UserAgent"]) values, and is optional. version version(Str) This attribute is read-only, accepts (Str) values, and is optional. METHODS This package implements the following methods: create create(Any %args) : InstanceOf["Mojo::Transaction"] The create method issues a POST request to the API resource represented by the object. create example #1 # given: synopsis $client->resource('post')->create( json => {active => 1} ); delete delete(Any %args) : InstanceOf["Mojo::Transaction"] The delete method issues a DELETE request to the API resource represented by the object. delete example #1 # given: synopsis $client->resource('delete')->delete; dispatch dispatch(Str :$method = 'get', Any %args) : InstanceOf["Mojo::Transaction"] The dispatch method issues a request to the API resource represented by the object. dispatch example #1 # given: synopsis $client->resource('get')->dispatch; dispatch example #2 # given: synopsis $client->resource('post')->dispatch( method => 'post', body => 'active=1' ); dispatch example #3 # given: synopsis $client->resource('get')->dispatch( method => 'get', query => {active => 1} ); dispatch example #4 # given: synopsis $client->resource('post')->dispatch( method => 'post', json => {active => 1} ); dispatch example #5 # given: synopsis $client->resource('post')->dispatch( method => 'post', form => {active => 1} ); dispatch example #6 # given: synopsis $client->resource('put')->dispatch( method => 'put', json => {active => 1} ); dispatch example #7 # given: synopsis $client->resource('patch')->dispatch( method => 'patch', json => {active => 1} ); dispatch example #8 # given: synopsis $client->resource('delete')->dispatch( method => 'delete', json => {active => 1} ); fetch fetch(Any %args) : InstanceOf["Mojo::Transaction"] The fetch method issues a GET request to the API resource represented by the object. fetch example #1 # given: synopsis $client->resource('get')->fetch; patch patch(Any %args) : InstanceOf["Mojo::Transaction"] The patch method issues a PATCH request to the API resource represented by the object. patch example #1 # given: synopsis $client->resource('patch')->patch( json => {active => 1} ); prepare 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. prepare example #1 # given: synopsis require Mojo::UserAgent; require Mojo::Transaction::HTTP; $client->prepare( Mojo::UserAgent->new, Mojo::Transaction::HTTP->new ); process 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. process example #1 # given: synopsis require Mojo::UserAgent; require Mojo::Transaction::HTTP; $client->process( Mojo::UserAgent->new, Mojo::Transaction::HTTP->new ); resource resource(Str @segments) : Object The resource method returns a new instance of the object for the API resource endpoint specified. resource example #1 # given: synopsis $client->resource('status', 200); serialize serialize() : HashRef The serialize method serializes and returns the object as a hashref. serialize example #1 # given: synopsis $client->serialize; update update(Any %args) : InstanceOf["Mojo::Transaction"] The update method issues a PUT request to the API resource represented by the object. update example #1 # given: synopsis $client->resource('put')->update( json => {active => 1} ); AUTHOR Al Newkirk, awncorp@cpan.org LICENSE 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" . PROJECT Wiki Project Initiatives Milestones Contributing Issues