Tierion DATA APIを使用してデータをData Storeに送信してみる

こんにちはー!Watcherひろの (@_hi_ro_no)です。

今回は「Tierion」の主要APIのDATA APIを使用してデータをData Store(データ置き場)に送信してみます。Tierion DATA API ドキュメントもぜひ参照してみてください。

1回に送信可能なサイズは64KBまでとなっている模様です。

Tierionにはデータを送信しないHASH APIというAPIも存在しています。HASH APIやTierionへのSignUpに関しては別記事を参照ください。

Tierion HASH APIを使用してハッシュ値をブロックチェーンに固定してみる

  1. TierionにSignUp(登録)する。
  2. API-KeyとData Store IDを取得する。
  3. API-Keyを元にDATA APIでデータを送信(レコードの作成)する。
  4. Data Store内のレコード詳細(データ詳細)を取得する。

1. TierionにSign Upする。

初回のみ必要な作業となります。TierionにSignUp時はメールアドレスが必要となります。こちらはHASH API向けの記事を参照ください。

Tierion HASH APIを使用してハッシュ値をブロックチェーンに固定してみる

2. API-KeyとData Store IDを取得する。

DATA API利用にはAPI-Keyが必要です。API-Keyはログイン後の画面上部にある「API」タブから「API-Key」「DATA Store ID」の参照が可能です。この「API-Key」と登録先である「DATA Store ID」を控えておいてください。

3. API-Keyを元にDATA APIでデータを送信する。

データの登録は非常に簡単です。エンドポイントに対して登録先のDATA Store IDと、登録したいデータを送信するだけとなります。

全てのリクエストのヘッダーに下記の情報を付与する必要があります。
Tierion登録時のメールアドレスと、取得した「API-Key」を付与してください。

X-Username:youremail@address.com
X-Api-Key:YourAPIKeyGesHere

エンドポイント:https://api.tierion.com/v1/records

リクエストパラメータ

{
  "datastoreId": 683,
  "firstname": "Milton",
  "lastname": "Waddams",
  "emailaddress": "mwaddams@initech.net",
  "companyname": "Initech",
  "employment status": "Not Found",
  "department": "Basement",
  "likes": "Red Swingline Staplers"
}

レスポンス

{
  "id": "2V5cdzUJOU27DGOZCVkW5g",
  "accountId": 1,
  "datastoreId": 683,
  "status": "queued",
  "data": {
    "firstname": "Milton",
    "lastname": "Waddams",
    "emailaddress": "mwaddams@initech.net",
    "companyname": "Initech",
    "employment status": "Not Found",
    "department": "Basement",
    "likes": "Red Swingline Staplers"
  },
  "json": "{\"firstname\":\"Milton\",\"lastname\":\"Waddams\",\"emailaddress\":\"mwaddams@initech.net\",\"companyname\":\"Initech\",\"employment status\":\"Not Found\",\"department\":\"Basement\",\"likes\":\"Red Swingline Staplers\"}",
  "sha256": "bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2",
  "timestamp": 1468947474
}

上記のようにIdや登録されたデータが返却されます。Idの値を元に後でデータの参照が可能です。(例だと 2V5cdzUJOU27DGOZCVkW5g の部分がId です)

EメールアドレスとAPI-Keyはリクエスト時のヘッダーに追加する必要があるため、サンプルフォームは用意していません。簡単に利用できるTierion DATA API Sampleを用意しました。GitHubにVisual C#のソースをアップしました。

「tierion_data_api_001.exe 」を実行すると上のような画面になります。「Eメールアドレス」、「API-Key」、「Data Store ID」は必須のパラメータとなります。登録したいDataの名前をKey(任意の文字列)に入力し、Dataの値をValue(任意の値)に入力してから「Submit」押下でレコード作成が完了します。結果が画面左下に表示されます。

4.Data Store内のレコード詳細を取得する。

エンドポイント: https://api.tierion.com/v1/records/2V5cdzUJOU27DGOZCVkW5g

リクエストパラメータ

パラメータはありません。エンドポイントに「Id」を付与してリクエストします。(例だと 2V5cdzUJOU27DGOZCVkW5g の部分が「Id」です)

レスポンス

{
  "id": "2V5cdzUJOU27DGOZCVkW5g",
  "accountId": 1,
  "datastoreId": 683,
  "status": "complete",
  "data": {
    "firstname": "Milton",
    "lastname": "Waddams",
    "emailaddress": "mwaddams@initech.net",
    "companyname": "Initech",
    "employment status": "Not Found",
    "department": "Basement",
    "likes": "Red Swingline Staplers"
  },
  "json": "{\"firstname\":\"Milton\",\"lastname\":\"Waddams\",\"emailaddress\":\"mwaddams@initech.net\",\"companyname\":\"Initech\",\"employment status\":\"Not Found\",\"department\":\"Basement\",\"likes\":\"Red Swingline Staplers\"}",
  "sha256": "bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2",
  "timestamp": 1468947472,
  "blockchain_receipt": {
    "@context": "https://w3id.org/chainpoint/v2",
    "type": "ChainpointSHA256v2",
    "targetHash": "bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2",
    "merkleRoot": "51296468ea48ddbcc546abb85b935c73058fd8acdb0b953da6aa1ae966581a7a",
    "proof": [
      {
        "left": "bdf8c9bdf076d6aff0292a1c9448691d2ae283f2ce41b045355e2c8cb8e85ef2"
      },
      {
        "left": "cb0dbbedb5ec5363e39be9fc43f56f321e1572cfcf304d26fc67cb6ea2e49faf"
      },
      {
        "right": "cb0dbbedb5ec5363e39be9fc43f56f321e1572cfcf304d26fc67cb6ea2e49faf"
      }
    ],
    "anchors": [
      {
        "type": "BTCOpReturn",
        "sourceId": "f3be82fe1b5d8f18e009cb9a491781289d2e01678311fe2b2e4e84381aafadee"
      }
    ]
  },
  "insights": null
}

レコード登録後、左下に表示された「Id」値を右側の「Id」に入力し、「Submit」押下で登録されているレコードを参照可能です。

追加したレコードはTierion公式サイト上でも確認出来ます。

データの登録先であるData Storeはもともと「Master」というData Storeがデフォルトで存在していますが、他に作成・更新・削除も可能です。Data Storeの一覧も取得出来ます。

Data Store内のレコード一覧の取得、レコード自体の削除のAPIも存在しており、Data Storeデータ登録時にEメール通知や他のURLにPost通信するといった合わせ技も可能となっています。

その他として「Zapier」とTierionは連携しているのでGmail、Slack、Google Sheets、Salesforceといった各種のサービス500個以上とデータの送信、受信が可能となっています!便利ですね!
Watcherひろの
Data APIは思ったよりも柔軟!