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 | 契約の締結 |
ValidateLedger | Ledger の検証 |
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