Archivo de especificación de entrada
El comando de inicialización Blockchain App Builder lee el archivo de especificación de entrada y genera el proyecto andamio con varias herramientas para ayudar en el proceso de desarrollo de código de cadenas.
Con el archivo de especificación puede especificar varias definiciones y comportamientos de activos, declaraciones de métodos CRUD y no CRUD, métodos personalizados, validación de argumentos, canalización/anulación de canalización automática de datos, capacidad de persistencia transparente y llamada a consultas de datos enriquecidas mediante SQL SELECTs o lenguaje de consulta CouchDB. Estas funciones se generarán para usted.
yaml
o json
. Puede ver archivos de especificación de ejemplo en ambos formatos en la descarga del paquete Blockchain App Builder:
Fabcar-Typescript.yml
Marbles-Go.yml
Note:
Según las convenciones de Go, los nombres exportados comienzan con una letra mayúscula. Por lo tanto, todas las propiedades y métodos de activos deben tener nombres que empiecen por letras mayúsculas en el archivo de especificación.Estructura del archivo de especificación
Normalmente, un archivo de especificación se estructura de la siguiente manera:
assets:
name:
type:
properties:
name:
type:
id:
derived:
strategy:
algorithm:
format:
mandatory:
default:
validate:
methods:
crud:
others:
customMethods:
Blockchain App Builder soporta dos tipos de activos especiales, activos embebidos y activos de token, además de activos genéricos sin ningún tipo especificado. Los activos especiales se definen como type: embedded
o type: token
en la sección assets:
del archivo de especificación.
Tabla 7-2 Descripciones y ejemplos de parámetros del archivo de especificación
Entrada | Descripción | Ejemplos |
---|---|---|
assets: |
Esta propiedad toma la definición y el comportamiento del activo. Puede proporcionar varias definiciones de activos aquí. |
|
name: |
El nombre del activo. Los siguientes nombres están reservados. No utilice estos nombres para los activos.
|
|
type: |
Tipo de activos Están soportados los siguientes tipos de activos especiales:
Si no especifica un parámetro |
|
type: type: incrustado |
Si esta propiedad se define en En el ejemplo, la propiedad Los activos embebidos no soportan referencias circulares. Por ejemplo, en el ejemplo anterior, el activo |
Activo:
employee
Activo:
address
|
properties: |
Describir todas las propiedades de un activo. |
|
name: |
Nombre de la propiedad. |
|
id: |
Especifica el identificador de este activo. Esta propiedad es obligatoria. |
|
type: |
Tipos de Propiedades Están soportados los siguientes tipos de propiedades básicas:
Para los códigos de cadena Go,
number se asigna a int y float a float64 . Actualmente no se admiten otros tipos, incluidos los siguientes:
|
|
derived: |
Esta propiedad especifica que la propiedad id se deriva de otras claves. Las propiedades dependientes deben ser del tipo de dato Esta propiedad tiene dos parámetros obligatorios:
Ejemplo 1:
Ejemplo 2:
|
Ejemplo 1
Ejemplo 2
|
mandatory: |
La propiedad correspondiente es obligatoria y no se puede omitir al crear un activo. |
|
default: |
Esto le proporciona el valor por defecto de esta propiedad. |
|
validate: |
La propiedad determinada se valida con algunas de las validaciones listas para usar proporcionadas por Blockchain App Builder. Puede encadenar validaciones si se asegura de que la cadena es válida. Si no se proporciona la propiedad |
|
validate: tipo: número |
Estas validaciones se pueden encadenar separadas por comas. |
|
validate: tipo: cadena |
Para los códigos de cadenas Go, las expresiones regulares que contengan determinados caracteres reservados o caracteres de espacio en blanco deben identificarse correctamente. |
|
validate: type: boolean |
En el ejemplo, la validación de la propiedad |
|
validate: type: array |
Por sí mismo, con el formato Puede introducir límites en la matriz con el formato |
|
validate: type: date (tipo: fecha) |
La fecha debe tener uno de estos formatos:
|
|
methods: |
Utilice esta opción para indicar cuál de los métodos CRUD (Crear/Lectura/Actualizar/Eliminar) o adicionales se van a generar. Por defecto, si no se introduce nada, se generan todos los CRUD y otros métodos. |
|
crud: |
Si esta matriz se deja vacía, no se creará ningún método CRUD. Si el parámetro El parámetro |
|
others: |
Si esta matriz se deja vacía, no se creará ningún otro método. Si el parámetro El parámetro |
|
customMethods: |
Esta propiedad crea plantillas de métodos personalizados invocables en el archivo de controlador principal. Toma la firma del método y crea la declaración de función en el archivo del controlador. Puede proporcionar declaraciones de funciones específicas del idioma aquí. Proporcionamos un método personalizado denominado |
TypeScript
Go
|