入力仕様ファイル
ブロックチェーン・アプリケーション・ビルダー初期化コマンドは、入力仕様ファイルを読み取り、チェーンコード開発プロセスを支援する複数のツールを使用してスキャフォールディング済プロジェクトを生成します。
仕様ファイルを使用すると、SQL SELECTまたはCouchDB問合せ言語を使用して、複数のアセット定義と動作、CRUDと非CRUDメソッド宣言、カスタム・メソッド、引数の検証、自動整列化/非整列化、透過的永続性機能、およびリッチ・データ問合せの呼出しを指定できます。これらの機能は自動的に生成されます。
yaml
またはjson
のいずれかで記述できます。ブロックチェーン・アプリケーション・ビルダー・パッケージのダウンロードでは、次の両方の形式のサンプル仕様ファイルを参照できます:
Fabcar-Typescript.yml
Marbles-Go.yml
ノート:
Go表記規則に従って、エクスポートされる名前は大文字で始まります。したがって、すべてのアセット・プロパティおよびメソッドには、仕様ファイル内で大文字で始まる名前が必要です。仕様ファイルの構造
通常は、次の方法で仕様ファイルを構造化します。
assets:
name:
type:
properties:
name:
type:
id:
derived:
strategy:
algorithm:
format:
mandatory:
default:
validate:
methods:
crud:
others:
customMethods:
ブロックチェーン・アプリケーション・ビルダーでは、タイプが指定されていない汎用アセットに加えて、埋込みアセットとトークン・アセットの2つの特別なアセット・タイプがサポートされています。特別なアセットは、仕様ファイルのassets:
セクションでtype: embedded
またはtype: token
として定義されます。
表7-2仕様ファイルのパラメータの説明および例
開始時 | 説明 | 例 |
---|---|---|
assets: |
このプロパティは、アセットの定義および動作を使用します。ここで複数のアセット定義を指定できます。 |
|
name: |
アセットの名前。 次の名前は予約されています。これらの名前はアセットには使用しないでください。
|
|
type: |
アセット・タイプ 次の特別なアセット・タイプがサポートされています。
|
|
type: タイプ: 埋込み |
このプロパティが この例では、プロパティ 埋込みアセットは循環参照をサポートしていません。たとえば、前述の例では、 |
アセット:
employee
アセット:
address
|
properties: |
アセットのすべてのプロパティを記述します。 |
|
name: |
プロパティの名前 |
|
id: |
これは、このアセットの識別子を指定します。このプロパティは必須です。 |
|
type: |
プロパティのタイプ 次の基本プロパティ・タイプがサポートされています。
Goチェーンコードの場合、
number はint にマップされ、float はfloat64 にマップされます。次のタイプを含むその他のタイプは、現在サポートされていません。
|
|
derived: |
このプロパティーは、idプロパティーがほかの鍵から派生することを指定します。依存プロパティは、埋込みアセットではなく、 このプロパティには、次の2つの必須パラメータがあります:
例1:
例2:
|
例1
例2
|
mandatory: |
対応するプロパティは必須であり、アセットの作成時にスキップできません。 |
|
default: |
これにより、このプロパティのデフォルト値が設定されます。 |
|
validate: |
指定されたプロパティは、ブロックチェーン・アプリケーション・ビルダーによって提供される即時利用可能な検証の一部に対して検証されます。チェーンが有効であることを確認した場合は、検証を連鎖できます。
|
|
validate: タイプ: 数値 |
これらの検証は、カンマで区切ることができます。 |
|
validate: タイプ: 文字列 |
Goチェーンコードでは、特定の予約文字または空白文字を含む正規表現を適切にエスケープする必要があります。 |
|
validate: 型: boolean |
この例では、プロパティ |
|
validate: タイプ: 配列 |
型自体によって、 配列には、最小長が1、最大長が5であることを意味する |
|
validate: タイプ: date |
日付は次のいずれかの書式にする必要があります:
|
|
methods: |
これを使用して、生成するCRUD (作成/読取り/更新/削除)または追加のメソッドを指定します。 デフォルトでは、何も入力されていない場合、すべてのCRUDおよびその他のメソッドが生成されます。 |
|
crud: |
この配列を空のままにすると、CRUDメソッドは作成されません。
|
|
others: |
この配列を空のままにすると、他のメソッドは作成されません。
|
|
customMethods: |
このプロパティは、メイン・コントローラ・ファイルに呼出し可能なカスタム・メソッド・テンプレートを作成します。メソッド・シグネチャを取得し、コントローラ・ファイルに関数宣言を作成します。 ここでは、言語固有の関数宣言を指定できます。
|
TypeScript
移動
|