Arquivo de Especificação de Entrada
O comando de inicialização do Blockchain App Builder lê o arquivo de especificação de entrada e gera o projeto com andaimes com várias ferramentas para auxiliar no processo de desenvolvimento de chaincode.
Com o arquivo de especificação, você pode especificar várias definições e comportamentos de ativos, declaração de método CRUD e não CRUD, métodos personalizados, validação de argumentos, marshalling automático/unmarshalling, recurso de persistência transparente e chamada de consultas avançadas de dados usando SQL SELECTs ou CouchDB Query Language. Esses recursos serão gerados para você.
yaml
ou json
. Você pode ver arquivos de especificação de amostra em ambos os formatos no download do pacote Blockchain App Builder:
Fabcar-Typescript.yml
Marbles-Go.yml
Observação:
De acordo com as convenções Go, os nomes exportados começam com letra maiúscula. Portanto, todas as propriedades e métodos do ativo devem ter nomes que comecem com letras maiúsculas no arquivo de especificação.Estrutura do Arquivo de Especificação
Normalmente, você estrutura um arquivo de especificação da seguinte maneira:
assets:
name:
type:
properties:
name:
type:
id:
derived:
strategy:
algorithm:
format:
mandatory:
default:
validate:
methods:
crud:
others:
customMethods:
O Blockchain App Builder suporta dois tipos especiais de ativos, ativos incorporados e ativos de token, além de ativos genéricos sem tipo especificado. Os ativos especiais são definidos como type: embedded
ou type: token
na seção assets:
do arquivo de especificação.
Tabela 7-2 Descrições e Exemplos de Parâmetro do Arquivo de Especificação
Entrada | Descrição | Exemplos |
---|---|---|
assets: |
Essa propriedade assume a definição e o comportamento do ativo. Você pode fornecer várias definições de ativo aqui. |
|
name: |
O nome do ativo. Estes nomes são reservados. Não use esses nomes para ativos.
|
|
type: |
Tipos de ativos Os seguintes tipos de ativos especiais são suportados:
Se você não especificar um parâmetro |
|
type: tipo: incorporado |
Se essa propriedade estiver definida como No exemplo, a propriedade Os ativos incorporados não suportam referências circulares. Por exemplo, no exemplo anterior, o ativo |
Ativo:
employee
Ativo:
address
|
properties: |
Descreva todas as propriedades de um ativo. |
|
name: |
O nome da propriedade. |
|
id: |
Especifica o identificador deste ativo. Esta propriedade é obrigatória. |
|
type: |
Tipos de propriedades Os seguintes tipos de propriedade básica são suportados:
Para códigos de cadeia Go,
number é mapeado para int e float é mapeado para float64 . Outros tipos não são suportados atualmente, incluindo os seguintes tipos:
|
|
derived: |
Esta propriedade especifica que a propriedade id é derivada de outras chaves. As propriedades dependentes devem ser do tipo de dados Esta propriedade tem dois parâmetros obrigatórios:
Exemplo 1:
Exemplo 2:
|
Exemplo 1
Exemplo 2
|
mandatory: |
A propriedade correspondente é obrigatória e não pode ser ignorada durante a criação de um ativo. |
|
default: |
Isso fornece o valor padrão dessa propriedade. |
|
validate: |
A propriedade fornecida é validada em relação a algumas das validações prontas para uso fornecidas pelo Blockchain App Builder. Você poderá encadear validações se garantir que a cadeia seja válida. Se a propriedade |
|
validate: tipo: número |
Essas validações podem ser encadeadas juntas separadas por vírgulas. |
|
validate: tipo: string |
Para códigos de cadeia Go, as expressões regulares que contêm determinados caracteres reservados ou caracteres de espaço em branco devem ter escape adequado. |
|
validate: tipo: booleano |
No exemplo, a validação da propriedade |
|
validate: tipo: array |
Por tipo próprio, na forma de Você pode informar limites para o array no formato |
|
validate: tipo: data |
A data deve ser um destes formatos:
|
|
methods: |
Use-o para informar quais métodos CRUD (Criar/Ler/Atualizar/Excluir) ou adicionais devem ser gerados. Por padrão, se nada for inserido, todos os métodos CRUD e outros serão gerados. |
|
crud: |
Se essa matriz for deixada vazia, nenhum método CRUD será criado. Se o parâmetro O parâmetro |
|
others: |
Se esse array for deixado vazio, nenhum outro método será criado. Se o parâmetro O parâmetro |
|
customMethods: |
Essa propriedade cria modelos de método personalizado invocáveis no arquivo do controlador principal. Ele pega a assinatura do método e cria a declaração de função no arquivo do controlador. Você pode fornecer declarações de função específicas do idioma aqui. Fornecemos um método personalizado chamado |
TypeScript
Ir
|