Eingabespezifikationsdatei
Der Initialisierungsbefehl Blockchain App Builder liest die Eingabespezifikationsdatei und generiert das Gerüstprojekt mit mehreren Tools, um den Chaincode-Entwicklungsprozess zu unterstützen.
Mit der Spezifikationsdatei können Sie mehrere Assetdefinitionen und -verhalten, CRUD- und Nicht-CRUD-Methodendeklaration, benutzerdefinierte Methoden, Validierung von Argumenten, automatisches Marshalling/Unmarshalling, transparente Persistenzfunktion und Aufrufen von Rich Data-Abfragen mit SQL SELECTs oder der CouchDB Query Language angeben. Diese Funktionen werden für Sie generiert.
yaml
oder json
geschrieben werden. Sie können Beispielspezifikationsdateien in beiden Formaten im Blockchain App Builder-Package herunterladen:
Fabcar-Typescript.yml
Marbles-Go.yml
Hinweis:
Gemäß Go-Konventionen beginnen exportierte Namen mit einem Großbuchstaben. Daher müssen alle Anlageneigenschaften und -methoden Namen haben, die in der Spezifikationsdatei mit Großbuchstaben beginnen.Struktur der Spezifikationsdatei
Normalerweise strukturieren Sie eine Spezifikationsdatei wie folgt:
assets:
name:
type:
properties:
name:
type:
id:
derived:
strategy:
algorithm:
format:
mandatory:
default:
validate:
methods:
crud:
others:
customMethods:
Blockchain App Builder unterstützt zwei spezielle Assettypen, eingebettete Assets und Tokenassets, zusätzlich zu generischen Assets ohne angegebenen Typ. Die speziellen Assets werden im Abschnitt assets:
der Spezifikationsdatei als type: embedded
oder type: token
definiert.
Tabelle 7-2: Beschreibungen und Beispiele für Spezifikationsdateiparameter
Eintrag | Beschreibung | Beispiele: |
---|---|---|
assets: |
Diese Eigenschaft übernimmt die Definition und das Verhalten der Anlage. Sie können hier mehrere Anlagendefinitionen angeben. |
|
name: |
Den Namen des Assets. Die folgenden Namen sind reserviert. Verwenden Sie diese Namen nicht für Assets.
|
|
type: |
Assettypen Die folgenden speziellen Assettypen werden unterstützt:
Wenn Sie im Abschnitt |
|
type: Typ: eingebettet |
Wenn diese Eigenschaft auf Im Beispiel ist die Eigenschaft Eingebettete Assets unterstützen keine zirkulären Referenzen. Beispiel: Im vorherigen Beispiel darf das Asset |
Anlage:
employee
Asset:
address
|
properties: |
Beschreiben Sie alle Eigenschaften eines Assets. |
|
name: |
Der Name der Eigenschaft. |
|
id: |
Gibt die ID dieses Assets an. Diese Eigenschaft ist obligatorisch. |
|
type: |
Attributtypen Die folgenden allgemeinen Eigenschaftstypen werden unterstützt:
Bei Go-Kettencodes wird
number int zugeordnet und float float64 zugeordnet. Andere Typen werden derzeit nicht unterstützt, einschließlich der folgenden Typen:
|
|
derived: |
Diese Eigenschaft gibt an, dass die ID-Eigenschaft von anderen Schlüsseln abgeleitet wird. Abhängige Eigenschaften müssen den Datentyp Diese Eigenschaft hat zwei obligatorische Parameter:
Beispiel 1:
Beispiel 2:
|
Beispiel 1
Beispiel 2
|
mandatory: |
Die entsprechende Eigenschaft ist erforderlich und kann beim Erstellen einer Anlage nicht übersprungen werden. |
|
default: |
Dadurch erhalten Sie den Standardwert dieser Eigenschaft. |
|
validate: |
Die angegebene Eigenschaft wird anhand einiger der von Blockchain App Builder bereitgestellten Out-of-Box-Validierungen validiert. Sie können Validierungen verketten, wenn Sie sicherstellen, dass die Kette gültig ist. Wenn die Eigenschaft |
|
validate: Typ: Zahl |
Diese Validierungen können durch Komma getrennt miteinander verkettet werden. |
|
validate: Typ: Zeichenfolge |
Bei Go-Kettencodes müssen reguläre Ausdrücke, die bestimmte reservierte Zeichen oder Leerzeichen enthalten, ordnungsgemäß mit Escapezeichen versehen werden. |
|
validate: type: boolean |
Im Beispiel entspricht die Validierung der Eigenschaft |
|
validate: Typ: Array |
Durch den Typ selbst wird in Form von Sie können Limits für das Array im Format |
|
validate: Typ: Datum |
Datum muss eines der folgenden Formate aufweisen:
|
|
methods: |
Verwenden Sie diese Option, um anzugeben, welche der CRUD-Methoden (Erstellen/Lesen/Aktualisieren/Löschen) oder zusätzliche Methoden generiert werden sollen. Wenn nichts eingegeben wird, werden standardmäßig alle CRUD- und anderen Methoden generiert. |
|
crud: |
Wenn dieses Array leer bleibt, werden keine CRUD-Methoden erstellt. Wenn der Parameter Der Parameter |
|
others: |
Wenn dieses Array leer bleibt, werden keine anderen Methoden erstellt. Wenn der Parameter Der Parameter |
|
customMethods: |
Diese Eigenschaft erstellt nicht verwendbare benutzerdefinierte Methodenvorlagen in der Hauptcontrollerdatei. Er nimmt die Methodensignatur an und erstellt die Funktionsdeklaration in der Controller-Datei. Hier können Sie sprachspezifische Funktionsdeklarationen angeben. Wir stellen eine benutzerdefinierte Methode mit dem Namen |
TypeScript
Los
|