Eingabespezifikationsdatei
Der Initialisierungsbefehl Blockchain App Builder liest die Eingabespezifikationsdatei und generiert das gerüstete Projekt 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 das Aufrufen von Rich Data-Abfragen mit SQL SELECTs oder CouchDB Query Language angeben. Diese Funktionen werden für Sie generiert.
yaml
oder json
geschrieben werden. Beispielspezifikationsdateien in beiden Formaten finden Sie im Download des Blockchain App Builder-Pakets:
Fabcar-Typescript.yml
Marbles-Go.yml
Hinweis:
Gemäß den Go-Konventionen beginnen exportierte Namen mit einem Großbuchstaben. Daher müssen alle Asset-Eigenschaften und -Methoden Namen aufweisen, die mit Großbuchstaben in der Spezifikationsdatei beginnen.Struktur der Spezifikationsdatei
In der Regel 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 Sondervermögensgegenstände werden als type: embedded
oder type: token
im Abschnitt assets:
der Spezifikationsdatei definiert.
Tabelle 7-2: Beschreibung und Beispiele für Parameter der Spezifikationsdatei
Eintrag | Beschreibung | Beispiele |
---|---|---|
assets: |
Diese Eigenschaft übernimmt die Definition und das Verhalten des Assets. Hier können Sie mehrere Assetdefinitionen angeben. |
|
name: |
Der Name 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 Zirkelbezüge. Beispiel: Im vorherigen Beispiel darf das Asset |
Anlage:
employee
Anlage:
address
|
properties: |
Beschreiben Sie alle Eigenschaften eines Assets. |
|
name: |
Der Name der Eigenschaft. |
|
id: |
Gibt die ID dieses Vermögensgegenstands an. Diese Eigenschaft ist obligatorisch. |
|
type: |
Eigenschaftentypen Die folgenden grundlegenden Eigenschaftstypen werden unterstützt:
Bei Go-Chaincodes ist
number int zugeordnet, und float ist 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 Out-of-Box-Validierungen validiert, die von Blockchain App Builder bereitgestellt werden. 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 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: Typ: boolean |
Im Beispiel erfolgt die Validierung der Eigenschaft |
|
validate: Typ: Array |
Der Typ selbst in Form von Sie können Limits für das Array im Format |
|
validate: Typ: Datum |
Das Datum muss eines der folgenden Formate aufweisen:
|
|
methods: |
Geben Sie hiermit an, welche der CRUD-Methoden (Create/Read/Update/Delete) oder zusätzliche Methoden generiert werden sollen. Wenn nichts eingegeben wird, werden standardmäßig alle CRUD- und andere Methoden generiert. |
|
crud: |
Wenn dieses Array leer gelassen wird, werden keine CRUD-Methoden erstellt. Wenn der Parameter Der Parameter |
|
others: |
Wenn dieses Array leer gelassen wird, werden keine anderen Methoden erstellt. Wenn der Parameter Der Parameter |
|
customMethods: |
Diese Eigenschaft erstellt in der Hauptcontrollerdatei unbrauchbare benutzerdefinierte Methodenvorlagen. Er nimmt die Methodensignatur und erstellt die Funktionsdeklaration in der Controllerdatei. Hier können Sie sprachspezifische Funktionsdeklarationen angeben. Wir stellen eine benutzerdefinierte Methode mit dem Namen |
TypeScript
Los
|