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 scaffolded, que inclui ferramentas para auxiliar no processo de desenvolvimento de chaincode.
No 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/unmarshalling automático, capacidade de persistência transparente e a capacidade de concluir consultas de dados avançadas usando instruções SQL SELECT ou a linguagem de consulta CouchDB. Esses recursos são gerados para você.
Fabcar-Typescript.yml
Marbles-Go.yml
Observação:
De acordo com as convenções Go, os nomes exportados começam com uma 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 oferece suporte a dois tipos de ativos especiais, 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 3-2 Descrições e Exemplos de Parâmetros do Arquivo de Especificação
Entrada | Descrição | Exemplos |
---|---|---|
assets: |
Essa propriedade usa a definição e o comportamento do ativo. Você pode definir vários ativos. |
|
name: |
O nome do ativo. Os nomes a seguir são reservados. Não use esses nomes para ativos.
|
|
type: |
Tipos do ativo Os seguintes tipos de ativos especiais são suportados:
Se você não especificar um parâmetro |
|
type: tipo: incorporado |
Se essa propriedade for 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: |
Descreve todas as propriedades de um ativo. |
|
name: |
O nome da propriedade. |
|
id: |
Especifica o identificador deste ativo. Esta propriedade é obrigatória. |
|
type: |
Tipos de propriedade Os seguintes tipos básicos de propriedade 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 no momento, 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: |
O valor padrão desta propriedade. |
|
validate: |
A propriedade fornecida é validada em relação a algumas das validações prontas para uso fornecidas pelo Blockchain App Builder. É possível encadear validações se você garantir que a cadeia seja válida. Se a propriedade |
|
validate: tipo: número |
Essas validações podem ser encadeadas, 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: booliano |
No exemplo, a validação da propriedade |
|
validate: tipo: matriz |
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 esta opção para indicar qual dos métodos CRUD (Criar/Ler/Atualizar/Excluir) ou adicionais serão gerados. Por padrão, todos os métodos CRUD e outros são gerados. |
|
crud: |
Se essa matriz for deixada vazia, nenhum método CRUD será criado. Se o parâmetro O parâmetro |
|
others: |
Se essa matriz for deixada vazia, nenhum outro método será criado. Se o parâmetro O parâmetro |
|
customMethods: |
Esta propriedade cria modelos de método personalizados 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. Um método personalizado chamado |
TypeScript
Ir
|