LoginSignup
6
1

More than 5 years have passed since last update.

Python3でNEMのAPIを叩く-002-NISが稼動しているかどうかを判断する

Last updated at Posted at 2018-03-11

はじめに

前回にNEM APIを叩くとき、NISへアクセスすると書きました。
つまり、NISが生きていないとアクセス出来ず、APIが叩けないわけです。
そこで、NISが稼動しているかどうかを判断するAPIを叩こうと思います。

使うAPI

/heartbeat を使用します。ノードが起動して応答性がある場合に情報を提供します。
/status を使うと詳細な情報が得られますが次回に紹介します。

↓APIの解説は本家の書き方のほうが見やすいような・・・。

スクリーンショット 2018-03-10 20.49.38.png
(解説:和訳)https://www.pr1sm.com/crypto-coin/nem-nis-api-documentation-in-japanese/#heart-beat-request

スクリーンショット 2018-03-10 19.34.04.png
(解説:本家)https://nemproject.github.io/#heart-beat-request

サンプル

コード

実行環境が無い方はpaizaで試せます。
https://paiza.io/ja

Python3

import requests
import json

r = requests.get('http://<サーバー名 or IPアドレス>:7890/heartbeat').json()

print(r)

結果の例

json
{"code":1,"type":2,"message":"ok"}

解説

前回の記事では、結果がJSON形式で返ってくると書きました。
JSONとはある記載ルールに則ったデータ形式です。
記載ルールが決まっているため、取り出し方も決まっています。
結果の{"code":1,"type":2,"message":"ok"}であれば、
・codeに1という数字が入っているよ
・typeに2という数字が入っているよ
・messageにOKという文字が入っているよ
という意味になります。

この結果をPython3で扱いたいときは、例えばcodeの値だけ取り出したいときは、以下のように書きます。

Python3
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が生きてるよ!」ということなんだと思います。

次回

Python3でNEMのAPIを叩く-003-NISの状態を詳細に知る

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1