madmis / kuna-api
Kuna.io REST API php 客户端
1.1.3
2018-01-22 06:41 UTC
Requires
- php: ^7.1
- doctrine/annotations: ^1.4
- madmis/exchange-api: ^0.1
- symfony/options-resolver: ^3.3
Requires (Dev)
- phpunit/phpunit: ^6.2
- symfony/console: ^3.3
This package is auto-updated.
Last update: 2024-09-19 21:54:42 UTC
README
Kuna.io 提供了 REST API,您可以使用这些 API 以编程方式与平台交互。
此 API 客户端将帮助您通过 REST API 与 Kuna 交互。
目录
许可证
MIT 许可证
Kuna REST API 参考
贡献
安装
composer require cryptopupua/kuna-api 1.1.*
使用方法
require __DIR__.'/vendor/autoload.php'; use cryptopupua\KunaApi\Api; use cryptopupua\KunaApi\Exception\IncorrectResponseException; use cryptopupua\KunaApi\KunaApi; use cryptopupua\KunaApi\Model\History; use cryptopupua\KunaApi\Model\MyAccount; use cryptopupua\KunaApi\Model\Order; use cryptopupua\KunaApi\Model\Ticker; $api = new KunaApi( 'https://kuna.io', 'public key', 'secret key' ); $timestamp = $api->shared()->timestamp();
映射
每个端点响应(不包括:时间戳)可以作为 array
或 object
接收。
要使用映射响应到 object
,请将参数 $mapping
设置为 true
。
$issue = $api->signed()->activeOrders(Http::PAIR_ETHUAH, true); // Result [ { class madmis\KunaApi\Model\Order { protected $id => 10003 protected $side => "sell" protected $ordType => "limit" protected $price => 10000 protected $avgPrice => 0 protected $state => "wait" protected $market => "ethuah" protected $createdAt => DateTime protected $volume => 0.01 protected $volume => 0.01 protected $remainingVolume => 0.01 protected $executedVolume => 0 protected $tradesCount => 0 } }, ... ]
错误处理
每个客户端请求错误都包装到自定义异常 madmis\ExchangeApi\Exception\ClientException
class madmis\ExchangeApi\Exception\ClientException { private $request => class GuzzleHttp\Psr7\Request private $response => NULL protected $message => "cURL error 7: Failed to connect to 127.0.0.1 port 8080: Connection refused (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)" ... }
ClientException 包含原始 请求对象 和(如果有的话)响应对象
class madmis\ExchangeApi\Exception\ClientException { private $request => class GuzzleHttp\Psr7\Request private $response => class GuzzleHttp\Psr7\Response { private $reasonPhrase => "Unauthorized" private $statusCode => 401 ... } protected $message => "Client error: 401" ... }
因此,要处理错误,请使用 try/catch
try { $api->signed()->activeOrders(Http::PAIR_ETHUAH, true); } catch (madmis\ExchangeApi\Exception\ClientException $ex) { // any actions (log error, send email, ...) }
运行测试
要运行测试,您需要安装 phpunit。最简单的方法是通过 composer。
composer install
运行单元测试
php vendor/bin/phpunit -c phpunit.xml.dist
库 API
共享资源(公共 Kuna API)
-
$timestamp = $api->shared()->timestamp();
-
$tickers = $api->shared()->tickers('btcuah');
-
$orders = $api->shared()->orderBook('btcuah');
-
$orders = $api->shared()->asksOrderBook('btcuah');
-
$orders = $api->shared()->bidsOrderBook('btcuah');
-
$orders = $api->shared()->tradesHistory('btcuah');
私有资源(私有 Kuna API)
-
$orders = $api->signed()->me();
-
$orders = $api->signed()->createBuyOrder('btcuah', 1.00, 350000, true);
-
$orders = $api->signed()->createSellOrder('btcuah', 1.00, 420000, true);
-
$orders = $api->signed()->cancelOrder(124578, true);
-
$orders = $api->signed()->activeOrders('btcuah', true);
-
$orders = $api->signed()->myHistory('btcuah', true);