輸入規格檔案
區塊鏈 App 產生器初始化命令會讀取輸入規格檔案,並使用數個工具產生鷹架式專案,以協助鏈碼開發處理作業。
您可以使用規格檔案指定多個資產定義和行為、CRUD 和非 CRUD 方法宣告、自訂方法、引數驗證、自動封送處理 (Marshal) / 解除封送處理 (Unmarshal)、透明保存功能,以及使用 SQL SELECT 或 CouchDB 查詢語言呼叫豐富的資料查詢。這些功能將為您產生。
yaml
或 json
寫入。您可以在 Blockchain App Builder 套件下載中,查看兩種格式的範例規格檔案:
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:
區塊鏈 App 產生器除了支援沒有指定類型的一般資產之外,還支援兩種特殊資產類型:內嵌資產和權杖資產。特殊資產定義為規格檔案之 assets:
區段下的 type: embedded
或 type: token
。
表格 7-2 規格檔案參數描述與範例
進入 | 描述 | 範例 |
---|---|---|
assets: |
此特性會採用資產的定義和行為。您可以在此處提供多個資產定義。 |
|
name: |
資產的名稱。 下列是保留的名稱。請勿將這些名稱用於資產。
|
|
type: |
資產類型 支援的特殊資產類型如下:
如果您未在 |
|
type: 類型:嵌入式 |
如果此特性設為 在範例中,特性 內嵌資產不支援循環參考。例如,在先前的範例中, |
資產:
employee
資產:
address
|
properties: |
描述資產的所有特性。 |
|
name: |
特性的名稱。 |
|
id: |
這會指定此資產的 ID。此為必要屬性。 |
|
type: |
特性類型 支援的基本特性類型如下:
對於 Go 鏈碼,
number 對應至 int ,而 float 對應至 float64 。目前不支援其他類型,包括下列類型:
|
|
derived: |
此特性指定從其他金鑰衍生 ID 特性。相依特性應為 此特性有兩個必要參數:
範例 1:
範例 2:
|
範例 1
範例 2
|
mandatory: |
對應的特性為必要特性,無法在建立資產時略過。 |
|
default: |
這會提供此特性的預設值。 |
|
validate: |
指定的特性會根據區塊鏈 App 產生器提供的部分立即可用驗證進行驗證。如果您確定鏈結有效,則可以鏈結驗證。 如果未提供 |
|
validate: 類型:數字 |
這些驗證可以用逗號分隔開來鏈結。 |
|
validate: 類型:字串 |
對於 Go 鏈碼,應正確逸出包含某些保留字元或空格字元的正規表示式。 |
|
validate: 類型:布林 |
在範例中,特性 |
|
validate: 類型:陣列 |
依據類型本身,以 您可以輸入陣列的限制,格式為 |
|
validate: 類型:日期 |
日期應為下列其中一種格式:
|
|
methods: |
您可以使用此選項來說明要產生哪些 CRUD (建立 / 讀取 / 更新 / 刪除) 或其他方法。 依預設,如果未輸入任何內容,則會產生所有 CRUD 和其他方法。 |
|
crud: |
如果此陣列保留空白,則不會建立任何 CRUD 方法。 如果完全未使用
|
|
others: |
如果此陣列保留空白,則不會建立其他方法。 如果完全未使用
|
|
customMethods: |
此特性會在主控制器檔案中建立可呼叫的自訂方法樣板。它會採用方法簽章,並在控制器檔案中建立函數宣告。 您可以在此處提供語言特定的函數宣告。 我們提供名為 |
TypeScript
移至
|