Fichier de spécification d'entrée
La commande d'initialisation Blockchain App Builder lit le fichier de spécification d'entrée et génère le projet échafaudé avec plusieurs outils pour aider au processus de développement de code chaîne.
Avec le fichier de spécification, vous pouvez indiquer 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 sérialisation/désérialisation automatique, la fonctionnalité de persistance transparente et l'appel de requêtes de données enrichies à l'aide de SQL SELECT ou du langage de requête 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
Remarques :
Conformément aux conventions Go, les noms exportés commencent par une majuscule. Par conséquent, toutes les propriétés et méthodes d'actif doivent avoir des noms commençant par des lettres majuscules dans le fichier de spécification.Structure du fichier de spécification
Généralement, 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 Description 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 la ressource. Vous pouvez indiquer plusieurs définitions d'immobilisation ici. |
|
name: |
Nom de la ressource. Les noms suivants sont réservés. N'utilisez pas ces noms pour les ressources.
|
|
type: |
Types de ressource Les types de ressource spéciale suivants sont pris en charge :
Si vous n'indiquez pas de paramètre |
|
type: type : incorporé |
Si cette propriété est définie sur 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 |
Equipement :
employee
Ressource :
address
|
properties: |
Décrire toutes les propriétés d'une ressource. |
|
name: |
Nom de la propriété. |
|
id: |
Indique l'identifiant 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 chaîne Go,
number est mis en correspondance avec int et float est mis en correspondance avec float64 . D'autres types ne sont pas pris en charge actuellement, notamment les suivants :
|
|
derived: |
Cette propriété indique que la propriété id est dérivée d'autres clés. Les propriétés dépendantes doivent être de type de données 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: |
Cela vous donne la valeur par défaut de cette propriété. |
|
validate: |
La propriété donnée est validée par rapport à certaines des validations prêtes à l'emploi fournies par Blockchain App Builder. Vous pouvez enchaîner les validations si vous assurez que la chaîne est valide. Si la propriété |
|
validate: type : nombre |
Ces validations peuvent être enchaînées par des virgules. |
|
validate: type : chaîne |
Pour les codes chaîne Go, les expressions régulières contenant certains caractères réservés ou espaces 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 de Vous pouvez entrer des limites pour le tableau au format |
|
validate: type : date |
La date doit avoir l'un des formats suivants :
|
|
methods: |
Utilisez cette option pour indiquer laquelle des méthodes CRUD (Créer/Lire/Mettre à jour/Supprimer) ou supplémentaires doit être générée. Par défaut, si rien n'est saisi, toutes les méthodes CRUD et autres sont générées. |
|
crud: |
Si ce tableau reste vide, aucune méthode CRUD ne sera créée. Si le paramètre Le paramètre |
|
others: |
Si ce tableau reste 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 invocables 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 de 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
|