openapi-java-client
Tapyrus API
- API version: 1.0.0
- Build date: 2021-07-26T00:10:25.662128Z[Etc/UTC]
イントロダクション
これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていくことを予定しています。
- Payment: TPC(Tapyrus Coin) の送金
- Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録
- Token: 新しいトークンの発行、送金、焼却。NFTも利用可能
Tapyrus ブロックチェーンについては以下の情報を参照してください。
Tapyrus API の利用法
Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の エンドポイント
に対して、 認証
済みの
トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。
ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。
Tapyrus API のエンドポイント
エンドポイントは以下のフォーマットで作成され、 chaintope より提供されます。
ap-01.tapyrus.chaintope.com
例えば testnet では以下のようになります。
testnet-api.tapyrus.chaintope.com
testnet は誰でも利用可能な動作の確認用のネットワークであり、予告なくリセットされる可能性があります。 利用に必要な TPC は faucet から取得できます。
OpenID Connect を使った認証
Tapyrus API では OpenID Connect を使った認証をサポートします。この認証を利用するためには、 以下のステップを踏みます。
- 利用する OpenID Provider(OP) を選択する
公開された OP から選択する方法と、自身で OP を構築する方法があります。独自のユーザデータベースがあり、そのユーザに Tapyrus API を利用させる場合は後者の自身で OP を構築する方法を選択することになります。
- OAuth 2.0 Client Credential を入手する
多くの公開された OP では、アプリケーションを登録して Client Credential を入手する必要があります。手順は利用する OP に従ってください。
- Access Token と ID Token を入手する
OpenID Connect に沿った認証を行い、 token エンドポイントから ID Token を入手します。
- Tapyrus API ユーザを作成する
入手した Access Token と ID Token を Tapyrus API の createUser API へ送り、 Tapyrus API のユーザを作成します。
コード例を後述の Getting Started ドキュメントで解説していますので、そちらを参照してください。
Tapyrus API ユーザとウォレットについて
認証により得たアクセストークンを使い、Tapyrus API ユーザを1つ作成する必要があります。 Tapyrus API の内部では、このユーザ1つにつき1つのウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されており、同時にそれらのカギに紐づくアセットも管理されます。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。
Getting Started
Getting Started ドキュメントでは実際のコード例を交えながらより具体的な Tapyrus API の利用法を解説しています。
Automatically generated by the OpenAPI Generator
Requirements
Building the API client library requires:
- Java 1.7+
- Maven/Gradle
Installation
To install the API client library to your local Maven repository, simply execute:
mvn clean install
To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:
mvn clean deploy
Refer to the OSSRH Guide for more information.
Maven users
Add this dependency to your project's POM:
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>openapi-java-client</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
Gradle users
Add this dependency to your project's build file:
compile "org.openapitools:openapi-java-client:1.0.0"
Others
At first generate the JAR by executing:
mvn clean package
Then manually install the following JARs:
target/openapi-java-client-1.0.0.jar
target/lib/*.jar
Getting Started
Please follow the installation instruction and execute the following Java code:
// Import classes:
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.Configuration;
import org.openapitools.client.auth.*;
import org.openapitools.client.models.*;
import org.openapitools.client.api.AddressApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://ap-01.tapyrus.chaintope.com/api/v1");
AddressApi apiInstance = new AddressApi(defaultClient);
try {
String result = apiInstance.createAddress();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling AddressApi#createAddress");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
Documentation for API Endpoints
All URIs are relative to https://ap-01.tapyrus.chaintope.com/api/v1
Class | Method | HTTP request | Description |
---|---|---|---|
AddressApi | createAddress | POST /addresses | アドレスを生成して返します。 |
AddressApi | getAddresses | GET /addresses | これまで生成したアドレスを一覧にして返します。 |
PaymentApi | transfer | POST /payment | 資金の送金 |
TimestampApi | addTimestamp | POST /timestamp | Timestampを記録 |
TimestampApi | getTimestamps | GET /timestamps | Timestamp一覧表示 |
TokenApi | burnToken | DELETE /tokens/{token_id}/burn | トークンの焼却 |
TokenApi | getTokens | GET /tokens | トークンの総量取得 |
TokenApi | issueToken | POST /tokens/issue | トークンの新規発行 |
TokenApi | reissueToken | POST /tokens/{token_id}/reissue | トークンの再発行 |
TokenApi | transferToken | PUT /tokens/{token_id}/transfer | トークンの送付 |
UserApi | createUser | POST /users | ユーザを作成します。 |
UserApi | getUserInfo | GET /userinfo | ユーザの情報を返します。 |
Documentation for Models
- AddTimestampRequest
- CreateUserRequest
- GetAddressesResponse
- GetTokensResponse
- IssueTokenRequest
- PaymentRequest
- PaymentResponse
- ReissueTokenRequest
- TokenResponse
- TransferTokenRequest
- UserinfoResponse
- UserinfoResponseBalances
Documentation for Authorization
All endpoints do not require authorization. Authentication schemes defined for the API:
Recommendation
It's recommended to create an instance of ApiClient
per thread in a multithreaded environment to avoid any potential issues.