#はじめに
前回にNEM APIを叩くとき、NISへアクセスすると書きました。
つまり、NISが生きていないとアクセス出来ず、APIが叩けないわけです。
そこで、NISが稼動しているかどうかを判断するAPIを叩こうと思います。
#使うAPI
/heartbeat を使用します。ノードが起動して応答性がある場合に情報を提供します。
/status を使うと詳細な情報が得られますが次回に紹介します。
↓APIの解説は本家の書き方のほうが見やすいような・・・。
(解説:和訳)https://www.pr1sm.com/crypto-coin/nem-nis-api-documentation-in-japanese/#heart-beat-request
#サンプル
##コード
実行環境が無い方はpaizaで試せます。
https://paiza.io/ja
import requests
import json
r = requests.get('http://<サーバー名 or IPアドレス>:7890/heartbeat').json()
print(r)
##結果の例
{"code":1,"type":2,"message":"ok"}
##解説
前回の記事では、結果がJSON形式で返ってくると書きました。
JSONとはある記載ルールに則ったデータ形式です。
記載ルールが決まっているため、取り出し方も決まっています。
結果の{"code":1,"type":2,"message":"ok"}であれば、
・codeに1という数字が入っているよ
・typeに2という数字が入っているよ
・messageにOKという文字が入っているよ
という意味になります。
この結果をPython3で扱いたいときは、例えばcodeの値だけ取り出したいときは、以下のように書きます。
import requests
import json
r = requests.get('http://<サーバー名 or IPアドレス>:7890/heartbeat').json()
print(r['code'])
ソースコードを個別に解説してきます。
HTTP GETリクエストとjsonを使う場合は必須です。
import requests
import json
HTTP GETリクエストでNEM APIを叩いて、結果をJSON形式で取得します。
r = requests.get('http://<サーバー名 or IPアドレス>:7890/heartbeat').json()
codeの値を出力します。NISが生きていれば、1が表示されます。
print(r['code'])
ここら辺の使い方は以下を参考にしました。
https://qiita.com/sqrtxx/items/49beaa3795925e7de666
#結果の値について
以下に詳細が記述されています。
https://www.pr1sm.com/crypto-coin/nem-nis-api-documentation-in-japanese/#nemRequestResult
##code
1: 成功の結果。典型的な例はノードが新しい有効なトランザクションを検証することです。
つまり、リクエストが成功しました。
##type
2:結果はheartbeatの結果です。
つまり、heartbeatリクエストに対する答えが返ってきたということです。
##message
記載がありませんが、OKということは「NISが生きてるよ!」ということなんだと思います。