NAME
Crypto::API - Universal Plug & Play API
USAGE
This module mainly used by Inheritance
package Exchange {
use Moo;
extends 'Crypto::API';
}
You can use this module as parent and the child class can simply define the api spec.
package foo {
use Moo;
extends 'Crypto::API';
sub _build_base_url {
URI->new('https://api.kucoin.com');
}
sub set_prices {{
request => {
method => 'get',
path => '/api/v1/market/stats',
data => {
pair => 'symbol',
},
},
response => {
key => 'data',
row => {
pair => 'symbol',
last_price => 'last',
},
},
}}
}
The main purpose of this is to normalise the request and response for different exchanges that using this API as a standard.
So if you call price data from Binance and Kucoin or etc ...
There will be no different.
$binance->prices(pair => 'XRP-USDC') -> getting { pair => 'XRP-USDC', last_price => 1234 };
OR
$kucoin->prices(pair => 'XRP-USDC') -> getting { pair => 'XRP-USDC', last_price => 1234 };