输入规范文件
Blockchain App Builder 初始化命令读取输入规范文件,并使用多个工具生成基架项目,以协助链码开发过程。
使用规范文件,您可以指定多个资产定义和行为、CRUD 和非 CRUD 方法声明、定制方法、参数验证、自动编集/解编集、透明持久性功能,以及使用 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:
区块链应用程序构建器支持两种特殊资产类型,嵌入式资产和令牌资产,以及没有指定类型的通用资产。特殊资产在规范文件的 assets:
部分下定义为 type: embedded
或 type: token
。
表 7-2 规范文件参数说明和示例
进入 | 说明 | 示例 |
---|---|---|
assets: |
此属性采用资产的定义和行为。您可以在此处提供多个资产定义。 |
|
name: |
资产的名称。 保留以下名称。请勿将这些名称用于资产。
|
|
type: |
资产类型 支持以下特殊资产类型:
如果未在 |
|
type: type:embedded(嵌入式) |
如果此属性设置为 在示例中,属性 嵌入式资产不支持循环引用。例如,在上例中, |
资产:
employee
资产:
address
|
properties: |
描述资产的所有属性。 |
|
name: |
属性的名称。 |
|
id: |
此项指定此资产的标识符。此属性为强制属性。 |
|
type: |
属性类型 支持以下基本属性类型:
对于 Go 链代码,
number 映射到 int ,float 映射到 float64 。当前不支持其他类型,包括以下类型:
|
|
derived: |
此属性指定 id 属性是从其他密钥派生的。相关属性应为 此属性有两个必需参数:
示例 1:
示例 2:
|
示例 1
示例 2
|
mandatory: |
对应的属性为必填项,在创建资产时无法跳过。 |
|
default: |
这将提供此属性的默认值。 |
|
validate: |
给定属性将根据区块链应用程序构建器提供的一些现成验证进行验证。如果确保链有效,则可以链接验证。 如果未提供 |
|
validate: 类型:数字 |
这些验证可以链接在一起,以逗号分隔。 |
|
validate: 类型:字符串 |
对于 Go 链代码,应正确转义包含某些保留字符或空格字符的正则表达式。 |
|
validate: type:boolean(类型:布尔值) |
在示例中,属性 |
|
validate: type:array(类型:数组) |
按类型本身(以 可以按 |
|
validate: 类型:日期 |
日期应为以下格式之一:
|
|
methods: |
使用此项可以说明要生成哪些 CRUD(创建/读取/更新/删除)或其他方法。 默认情况下,如果不输入任何内容,将生成所有 CRUD 及其他方法。 |
|
crud: |
如果该数组留空,则不会创建 CRUD 方法。 如果根本不使用
|
|
others: |
如果此数组留空,则不会创建其他方法。 如果根本不使用
|
|
customMethods: |
此属性在主控制器文件中创建可调用的定制方法模板。它接受方法签名并在控制器文件中创建函数声明。 您可以在此处提供特定于语言的函数声明。 我们提供名为 |
TypeScript
开始
|