tapyrus-api-client
TapyrusApiClient - the Ruby gem for the Tapyrus API
イントロダクション
これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。
- Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録
- Token: 新しいトークンの発行、送金、焼却。NFTも利用可能
- Tracking: トレーサビリティを目的としてたモノの移動履歴を記録
Tapyrus ブロックチェーンについては以下の情報を参照してください。
Tapyrus API の利用法
Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の エンドポイント に対して、 認証 済みの
トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。
ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。
Tapyrus API のエンドポイント
エンドポイントは以下のフォーマットで作成されます。
https://xxx.api.tapyrus.chaintope.com/api/v1
xxxの部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。
API接続の準備
ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。
クライアント証明書
Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含むPKCS#12形式のファイルがダウンロードできます。
ユーザーの登録
ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。
ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。
接続確認
クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。
- ダウンロードしたPKCS#12ファイルからcert.pemを生成。
$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts - cert.pemとアクセストークンを使ってAPIへアクセス。
$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem
成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
This SDK is automatically generated by the OpenAPI Generator project:
- API version: 1.1.0beta4
- Package version: 1.1.0beta4
- Build package: org.openapitools.codegen.languages.RubyClientCodegen
Installation
Build a gem
To build the Ruby code into a gem:
gem build tapyrus-api-client.gemspec
Then either install the gem locally:
gem install ./tapyrus-api-client-1.1.0beta4.gem
(for development, run gem install --dev ./tapyrus-api-client-1.1.0beta4.gem to install the development dependencies)
or publish the gem to a gem hosting service, e.g. RubyGems.
Finally add this to the Gemfile:
gem 'tapyrus-api-client', '~> 1.1.0beta4'
Install from Git
If the Ruby gem is hosted at a git repository: https://github.com/GIT_USER_ID/GIT_REPO_ID, then add the following in the Gemfile:
gem 'tapyrus-api-client', :git => 'https://github.com/GIT_USER_ID/GIT_REPO_ID.git'
Include the Ruby code directly
Include the Ruby code directly using -I as follows:
ruby -Ilib script.rb
Getting Started
Please follow the installation procedure and then run the following code:
# Load the gem
require 'tapyrus-api-client'
# Setup authorization
TapyrusApiClient.configure do |config|end
api_instance = TapyrusApiClient::AddressApi.new
purpose_address_request = TapyrusApiClient::PurposeAddressRequest.new # PurposeAddressRequest |
begin
#アドレスを生成して返します。
result = api_instance.create_address(purpose_address_request)
p result
rescue TapyrusApiClient::ApiError => e
puts "Exception when calling AddressApi->create_address: #{e}"
end
Documentation for API Endpoints
All URIs are relative to https://ap-01.api.tapyrus.chaintope.com/api/v1
| Class | Method | HTTP request | Description |
|---|---|---|---|
| TapyrusApiClient::AddressApi | create_address | POST /addresses | アドレスを生成して返します。 |
| TapyrusApiClient::AddressApi | get_addresses | GET /addresses | これまで生成したアドレスを一覧にして返します。 |
| TapyrusApiClient::TimestampApi | add_timestamp | POST /timestamps | Timestampを記録 |
| TapyrusApiClient::TimestampApi | get_timestamp | GET /timestamps/id | Timestamp表示 |
| TapyrusApiClient::TimestampApi | get_timestamps | GET /timestamps | Timestamp一覧表示 |
| TapyrusApiClient::TokenApi | burn_token | DELETE /tokens/token_id/burn | トークンの焼却 |
| TapyrusApiClient::TokenApi | get_tokens | GET /tokens | トークンの総量取得 |
| TapyrusApiClient::TokenApi | issue_token | POST /tokens/issue | トークンの新規発行 |
| TapyrusApiClient::TokenApi | reissue_token | POST /tokens/token_id/reissue | トークンの再発行 |
| TapyrusApiClient::TokenApi | transfer_token | PUT /tokens/token_id/transfer | トークンの送付 |
| TapyrusApiClient::TrackingApi | consume_tracking | POST /tracking/consume | モノのトラッキングを終了します。 |
| TapyrusApiClient::TrackingApi | get_tracking_subjects | GET /tracking/subjects/subject_id/traces | モノの移動の履歴を返します。 |
| TapyrusApiClient::TrackingApi | get_tracking_traces | GET /tracking/traces/trace_id | モノの移動履歴(trace)に関する情報を返します。 |
| TapyrusApiClient::TrackingApi | supply_tracking | POST /tracking/supply | 新規でトラッキングを開始します。 |
| TapyrusApiClient::TrackingApi | transport_tracking | POST /tracking/transport | トラッキング中のモノの移動を記録します。 |
| TapyrusApiClient::UserApi | create_user | POST /users | ユーザを作成します。 |
| TapyrusApiClient::UserApi | get_user_info | GET /userinfo | ユーザの情報を返します。 |
Documentation for Models
- TapyrusApiClient::AddTimestampRequest
- TapyrusApiClient::AddTimestampResponse
- TapyrusApiClient::ConsumeTrackingRequest
- TapyrusApiClient::CreateUserRequest
- TapyrusApiClient::GetAddressesResponse
- TapyrusApiClient::GetTimestampResponse
- TapyrusApiClient::GetTokensResponse
- TapyrusApiClient::IssueTokenRequest
- TapyrusApiClient::PurposeAddressRequest
- TapyrusApiClient::ReissueTokenRequest
- TapyrusApiClient::SupplyTrackingRequest
- TapyrusApiClient::TimestampType
- TapyrusApiClient::TokenResponse
- TapyrusApiClient::TrackingDestination
- TapyrusApiClient::TrackingResponse
- TapyrusApiClient::TrackingSubject
- TapyrusApiClient::TrackingSubjectMerkleRoot
- TapyrusApiClient::TrackingTrace
- TapyrusApiClient::TrackingTracesResponse
- TapyrusApiClient::TransferTokenRequest
- TapyrusApiClient::TransportTrackingRequest
- TapyrusApiClient::UserinfoResponse
- TapyrusApiClient::UserinfoResponseBalances
Documentation for Authorization
All endpoints do not require authorization.