メインコンテンツまでスキップ
バージョン: 1.4.0

基本機能 - プロキシ

プロキシ(proxy)機能を利用すると、パートナー企業のサービスがユーザーのDOSIアカウント内のデジタルアイテムを変更(シーリング、アンシーリング、販売中のデジタルアイテムを販売中止など)する管理権限の委任を受けることができます。

接続情報

開発環境DOSI SDK base URI
プロダクション環境https://sdk-api.dosi.world

使用手順

ユーザーのDOSIアカウントからデジタルアイテム管理権限の委任(プロキシ設定)を受ける手順は以下のとおりです。

  1. プロキシ設定をリクエストするエンドポイントを呼び出します。
  2. 1で受信した応答のredirectUriに移動します。
    • このアドレスは、ユーザーがDOSIアカウントを認証するためにPINコードを入力する画面を表示します。
    • ユーザーがPINコードを入力すると、プロキシ設定をリクエストするエンドポイントを呼び出した際にbodyパラメータとして入力したredirectUriに自動的に移動します。
  3. 1で受信した応答のsessionTokenをpathパラメータとして使用し、プロキシ設定のリクエストをコミットするエンドポイントを呼び出します。

上記の手順をすべて実行すると、プロキシ設定が完了します。

プロキシはアカウントごとに一度だけ設定する必要があります。

プロキシ(proxy)ステータスの取得

ユーザーのDOSIアカウントがデジタルアイテムの管理権限を委任(プロキシ設定)したかどうかを取得します。

GET {DOSI SDK base URI}/v1/wallets/{walletAddress}/contracts/{contractId}/proxy

Path

Name
TypeDescription
walletAddressstring

ユーザーのDOSIアカウントのウォレットアドレス。ユーザーの拡張プロフィールを取得するエンドポイントを使用して取得できます。

contractIdstring

プロキシを設定するサービスのcontract ID

Query

None

Body

None

Headers
  • Authorization: Basic <「DOSIチャネルID:シークレット」をBase64でエンコードした値>
  • Content-Type: application/json

Request examples

curl --location --request GET 'https://sdk-api.dosi.world/v1/wallets/link1xx...zzz/contracts/ab...cd/proxy' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json'

プロキシ(proxy)設定のリクエスト

ユーザーのDOSIアカウントにプロキシを設定するようにリクエストします。

POST {DOSI SDK base URI}/v1/wallets/{walletAddress}/contracts/{contractId}/proxy

Path

Name
TypeDescription
walletAddressstring

ユーザーのDOSIアカウントのウォレットアドレス

contractIdstring

プロキシを設定するサービスのcontract ID

Query

None

Body

Name
TypeDescription
Required
redirectUristring

ユーザー認証後にリダイレクトするURI

Headers
  • Authorization: Basic <「DOSIチャネルID:シークレット」をBase64でエンコードした値>
  • Content-Type: application/json

Request examples

curl --request POST 'https://sdk-api.dosi.world/v1/wallets/link1xx...zzz/contracts/ab...cd/proxy' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"redirectUri": "https://....com/xxx"
}'

プロキシ(proxy)設定中に認証ステータスを取得

ユーザーのDOSIアカウントにプロキシを設定する際にユーザーの認証ステータスを取得します。

GET {DOSI SDK base URI}/v1/proxy/requests/{sessionToken}

Path

Name
TypeDescription
sessionTokenstring

プロキシ設定をリクエストするを呼び出して取得したsessionToken

Query

None

Body

None

Headers
  • Authorization: Basic <「DOSIチャネルID:シークレット」をBase64でエンコードした値>
  • Content-Type: application/json

Request examples

curl --request GET 'https://sdk-api.dosi.world/v1/proxy/requests/xx...cc' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json'

プロキシ(proxy)設定リクエストのコミット

ユーザーのDOSIアカウントにプロキシを設定する作業をコミットします。

POST {DOSI SDK base URI}/v1/proxy/requests/{sessionToken}/commit

Path

Name
TypeDescription
sessionTokenstring

プロキシ設定をリクエストするを呼び出して取得したsessionToken

Query

None

Body

Name
TypeDescription
Required
txIdstring

APIリクエストを追跡するために使用する識別子。RFC 9562で定義されたUUID文字列(大文字小文字を区別しない)を使用してください。

識別子は、DOSI SDKサーバーにリクエストを送信した後、その処理結果をトランザクションで確認する際に使用します。 識別子を指定しない場合、DOSI SDKサーバーが識別子を生成して応答として返します。

ネットワーク障害などの問題でサーバーの応答を受け取れない状況でも処理結果を確認したい場合は、この値を指定してください。

Headers
  • Authorization: Basic <「DOSIチャネルID:シークレット」をBase64でエンコードした値>
  • Content-Type: application/json

Request examples

curl --request POST 'https://sdk-api.dosi.world/v1/proxy/requests/xx...cc/commit' \
--header 'Authorization: Basic xxxxxxxx' \
--header 'Content-Type: application/json'