Fichier de spécification d'entrée
La commande d'initialisation du générateur d'applications de chaîne de blocs lit le fichier de spécification d'entrée et génère le projet échafaudé avec plusieurs outils pour faciliter le processus de développement de code de chaîne.
Avec le fichier de spécification, vous pouvez spécifier plusieurs définitions et comportements de ressource, la déclaration de méthode CRUD et non-CRUD, les méthodes personnalisées, la validation des arguments, la conversion automatique des paramètres/déconversion des paramètres, la capacité de persistance transparente et l'appel des interrogations de données enrichies à l'aide de SQL SELECTs ou du langage d'interrogation CouchDB. Ces fonctionnalités seront générées pour vous.
yaml
ou json
. Vous pouvez voir des exemples de fichiers de spécification dans les deux formats dans le téléchargement du package Blockchain App Builder :
Fabcar-Typescript.yml
Marbles-Go.yml
Note :
Conformément aux conventions Go, les noms exportés commencent par une lettre majuscule. Par conséquent, toutes les propriétés et méthodes des immobilisations doivent avoir des noms commençant par des lettres majuscules dans le fichier de caractéristiques.Structure du fichier de spécification
En général, vous structurez un fichier de spécification de la manière suivante :
assets:
name:
type:
properties:
name:
type:
id:
derived:
strategy:
algorithm:
format:
mandatory:
default:
validate:
methods:
crud:
others:
customMethods:
Blockchain App Builder prend en charge deux types de ressource spéciaux, les ressources intégrées et les ressources de jeton, en plus des ressources génériques sans type spécifié. Les ressources spéciales sont définies comme type: embedded
ou type: token
dans la section assets:
du fichier de spécification.
Tableau 7-2 : Descriptions et exemples de paramètres de fichier de spécification
Entrée | Description | Exemples |
---|---|---|
assets: |
Cette propriété prend la définition et le comportement de l'immobilisation. Vous pouvez donner plusieurs définitions d'immobilisations ici. |
|
name: |
Nom de la ressource. Les noms suivants sont réservés. N'utilisez pas ces noms pour les immobilisations.
|
|
type: |
Type de ressource Les types de ressource spéciale suivants sont pris en charge :
Si vous ne spécifiez pas de paramètre |
|
type: type : Intégré |
Si cette propriété est réglée à Dans l'exemple, la propriété Les ressources intégrées ne prennent pas en charge les références circulaires. Par exemple, dans l'exemple précédent, la ressource |
Ressource :
employee
Ressource :
address
|
properties: |
Décrivez toutes les propriétés d'une ressource. |
|
name: |
Nom de la propriété. |
|
id: |
Indique l'identificateur de cette immobilisation. Cette propriété est obligatoire. |
|
type: |
Types de propriété Les types de propriété de base suivants sont pris en charge :
Pour les codes de chaîne Go,
number est mappé à int et float à float64 . Les autres types ne sont pas pris en charge actuellement, notamment les types suivants :
|
|
derived: |
Cette propriété spécifie que la propriété id est dérivée d'autres clés. Les propriétés dépendantes doivent être de type Cette propriété comporte deux paramètres obligatoires :
Exemple 1 :
Exemple 2:
|
Exemple 1
Exemple 2
|
mandatory: |
La propriété correspondante est obligatoire et ne peut pas être ignorée lors de la création d'une immobilisation. |
|
default: |
Vous obtenez ainsi la valeur par défaut de cette propriété. |
|
validate: |
La propriété indiquée est validée par rapport à certaines des validations prêtes à l'emploi fournies par Blockchain App Builder. Vous pouvez effectuer des validations de chaîne si vous assurez que la chaîne est valide. Si la propriété |
|
validate: type : nombre |
Ces validations peuvent être chaînées entre elles, séparées par des virgules. |
|
validate: type : chaîne |
Pour les codes de chaîne Go, les expressions rationnelles qui contiennent certains caractères réservés ou certains caractères d'espace doivent être correctement échappées. |
|
validate: type : boolean |
Dans l'exemple, la validation de la propriété |
|
validate: type : tableau |
Par type lui-même, sous la forme Vous pouvez entrer des limites pour le tableau au format |
|
validate: type : date |
La date doit être l'un des formats suivants :
|
|
methods: |
Utilisez cette option pour indiquer les méthodes CRUD (Créer/Lire/Mettre à jour/Supprimer) ou supplémentaires à générer. Par défaut, si aucune valeur n'est entrée, toutes les méthodes CRUD et autres sont générées. |
|
crud: |
Si ce tableau est laissé vide, aucune méthode CRUD ne sera créée. Si le paramètre Le paramètre |
|
others: |
Si ce tableau est laissé vide, aucune autre méthode ne sera créée. Si le paramètre Le paramètre |
|
customMethods: |
Cette propriété crée des modèles de méthode personnalisée invokable dans le fichier de contrôleur principal. Il prend la signature de la méthode et crée la déclaration de fonction dans le fichier contrôleur. Vous pouvez fournir des déclarations de fonction spécifiques à la langue ici. Nous fournissons une méthode personnalisée nommée |
TypeScript
Go
|