Blockscan JSON APIを使ってみる(Swift) (1/2)
はじめに
今回は[Blockscan](https://www.blockscan.comが提供しているJSON APIの使い方について書きます。Blockscan APIを利用すると自前でCounterpartydをインストールする必要が無いため、アプリケーション開発に資源を集中することができます。
現在は参照系のAPIのみの提供ですが、将来的にBlockchain.infoのようにウォレット作成など更新系のAPIが公開されることを期待します。(ただし、今のところそういったアナウンスは一切聞きません)
今回は確認用のプログラム言語としてSwift(iOS)を使用します。Swiftの導入手順も少し書きます。
目次
はじめてのSwift
Swift
Swiftについての細かい説明はしません。著者のセミナーに参加するという理由だけで私は以下の書籍から学び始めました。(推薦する、しないの話ではありません)
詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2014/12/13
- メディア: 単行本
- この商品を含むブログ (1件) を見る
HTTP通信ライブラリ Alamofire
HTTP通信ライブラリはSwift版AFNetworkingのGithub Alamofire/Alamofireを利用します。matttにはいつもお世話になっております...
Objective-Cとは違いCocoapodsでさっとインストールできなくて、以下手順に従いました。
[Swift] HTTP通信OSS Alamofire 導入編
Blockscanが提供しているJSON API
Blockscanが提供しているJSON APIは以下です。JSON API Blockscan APIs
1. Asset APIs
* Get a list of all available Assets * Get a specific asset detail * Get asset holders * Get asset issuances
2. Address APIs
* Get Address Balance for a specific Asset * Get Address Balance for all available Assets * Get Address credit/debits for a specific Asset (Last 100 transactions) * Get Address credit/debits for all available Assets (Last 100 transactions)
3. Broadcast APIs
* Get the latest broadcasts
4. Transaction APIs (in progress)
* Get the latest transactions * Get transactions by specific block index * Get a specific transaction detail
5. DEX APIs
* Get the Latest Dex BTCPAY Price for an Asset * Get the Latest Dex OrderMatch Price for other assets pairs
6. Money Supply APIs
* Get XCP Money Supply
7. Misc APIs
* Get Counterparty Running Info * Get Block Info
API実行(アセット一覧)
利用可能なアセット一覧を取得します。
仕様
http://api.blockscan.com/api2?module=asset&action=list OR http://api.blockscan.com/api2?module=asset&action=list&page=1&count=10 (To get paginated results use page=<page number> and count=<max records to return>)
リクエスト(Swift)
let params = [ "module":"asset", "action":"list", "page":"1", "count":"3", ] Alamofire.request(.GET, "http://api.blockscan.com/api2", parameters: params) .responseJSON { (_, _, JSON, _) in println(JSON) }
レスポンス(JSON)
Optional({ data = ( { asset = A100000000000000000; circulation = 1; divisible = True; locked = False; owner = 1QEx9kdYQqmNzC8HW8FPQS3Mb7vVXYa7bK; }, { asset = A1000000000000000000; circulation = 1; divisible = True; locked = False; owner = 1QD5oHa3QZdeaXVbtwqWkSiW8nLUB1jrCx; }, { asset = A10000000000000000000; circulation = 1; divisible = True; locked = False; owner = 1Bemb8LJMY5TxWJPvbW4QFEYRQ6wXKRFo2; } ); message = "list of assets from page=1 with count=3 out of 7574 assets"; status = success; totalcount = 7574; })
まとめ
1ヶ月前にBlockscanのサイトを見た時に比べてAPI数が増えている気がします。最近Testnetにも対応するなどBlockscanの開発も進んでいる印象があります。ただし、Blockchain.infoと同じように更新系のAPIを用意するのはかなり先、または無いかもしれません。(あくまで想像です)
今日のSwiftメモ
間違っている可能性大いにあり。解決方法探し中。
- クラス名のリファクタリングができない
- AlamofireがCococPodsでインストールできない。