メインコンテンツまでスキップ
バージョン: 3.4 (サポートされていない)

ScalarDL Go クライアント SDK

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このモジュールは、ScalarDL ネットワークと対話するアプリケーションを開発するためのものです。

インストール

この SDK は Go モジュールとしてリリースされます。 これをインストールするには、プロジェクトのルート フォルダーに移動し、次のコマンドを使用してこの SDK をモジュールに追加します。

go get github.com/scalar-labs/scalardl-go-client-sdk/v3@{version}

互換性

SDK はマイナー バージョンを揃えることで ScalarDL と互換性があります。

たとえば、ユーザーはこの SDK バージョン 3.4.* を使用して、ScalarDL 3.4.* ネットワークに接続できます。

方法

このセクションでは、次の主な構造について説明します。

  • クライアント構成
  • 顧客サービス
  • クライアントエラー

クライアント構成

ClientConfig は、ScalarDL クライアント構成を表します。

ユーザーは、ScalarDL ネットワークに接続する前にこれを準備する必要があります。

ClientConfig は、 Java Properties 形式の文字列または JSON 形式の文字列をロードすることによって作成できます。

Java Properties からロードする例:

import "github.com/scalar-labs/scalardl-go-client-sdk/v3/client/config"

var clientConfig config.ClientConfig
var err error
var javaProperties = `
scalar.dl.client.server.host=localhost
scalar.dl.client.server.port=80
scalar.dl.client.server.privileged_port=8080
scalar.dl.client.cert_holder_id=foo
scalar.dl.client.cert_pem=-----BEGIN CERTIFICATE-----\nMIICjTCCAj...\n
scalar.dl.client.private_key_pem=-----BEGIN EC PRIVATE KEY-----\nMHc...
`

clientConfig, err = config.NewClientConfigFromJavaProperties(javaProperties);

JSON からロードする例:

import "github.com/scalar-labs/scalardl-go-client-sdk/v3/client/config"

var clientConfig config.ClientConfig
var err error
var json = `
{
"scalar.dl.client.server.host": "localhost",
"scalar.dl.client.server.port": 80,
"scalar.dl.client.server.privileged_port": 8080,
"scalar.dl.client.cert_holder_id": "foo",
"scalar.dl.client.cert_pem": "-----BEGIN CERTIFICATE-----\nMIICjTCCAj...\n",
"scalar.dl.client.private_key_pem": "-----BEGIN EC PRIVATE KEY-----\nMHc...",
}
`

clientConfig, err = config.NewClientConfigFromJSON(json);

ClientConfig 変数を使用して ClientService 構造を構築できます。

顧客サービス

ClientService は、ScalarDL ネットワークに要求を送信し、ScalarDL ネットワークから応答を受信するためのメイン インターフェイスです。

ClientConfig 変数を使用して ClientService を構築します。

import "github.com/scalar-labs/scalardl-go-client-sdk/v3/client/service"

var clientService service.ClientService
var err error

clientService, err = service.NewClientService(clientConfig)

clientService が正常に作成されると、ユーザーはその関数を使用してリクエストを送信できるようになります。

名前リクエスト
RegisterCertificate証明書の登録
RegisterContract契約登録
ExecuteContract契約の締結
ValidateLedgerLedger の検証

example サブフォルダー内のソース コードはそれぞれ詳細を示しています。

クライアントエラー

ClientError は、エラー インターフェイスと、ScalarDL ネットワークから返される ScalarDL ステータス コードを含むもう 1 つの StatusCode 関数を実装します。

ClientService から返されたエラーは、常に ClientError にアサートされるわけではないことに注意してください。

import (
client_error "github.com/scalar-labs/scalardl-go-client-sdk/v3/client/error"
"github.com/scalar-labs/scalardl-go-client-sdk/v3/client/service"
)

var clientService service.ClientService
var clientError client_error.ClientError
var err error

...

err = service.RegisterCertificate()

if clientError, ok := err.(client_error.ClientError); ok {
// clientError.StatusCode() can be used here
}

gRPC protobuf ファイルを再生成します

ScalarDL は通信プロトコルとして gRPC を使用します。

生成された gRPC go ファイルは``rpc` サブフォルダーに配置されます。

これらを生成するには、前提条件 を確認して、必要なツールをインストールしてください。 また、Golang パッケージを指定するには、*.proto ファイルに option go_package = "./rpc"; を追加する必要があります。 次に、次のコマンドを使用して関連ファイルを生成します。

protoc --go_out=<path-to-this-repository> --go-grpc_out=<path-to-this-repository> scalar.proto