madmis/kuna-api

Kuna.io REST API php 客户端

1.1.3 2018-01-22 06:41 UTC

README

SensioLabsInsight Build Status Coverage Status Latest Stable Version Total Downloads License

Kuna.io 提供了 REST API,您可以使用这些 API 以编程方式与平台交互。

此 API 客户端将帮助您通过 REST API 与 Kuna 交互。

目录

许可证

MIT 许可证

Kuna REST API 参考

https://kuna.io/documents/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();

映射

每个端点响应(不包括:时间戳)可以作为 arrayobject 接收。

要使用映射响应到 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)

私有资源(私有 Kuna API)