Gerar APIs Wrapper Usando a CLI

A versão aprimorada do Blockchain App Builder inclui o comando generateFnAPI, que gera APIs wrapper para todas as APIs do controlador em um projeto chaincode.

Usage: ochain generateFnAPI [options]
Generation of WrapperAPI package for controller functions
Options:
-h, --help                  Output command usage information
-D, --debug                 Enable debug logging
-m, --mapping <mapping>     Info about functions endpoints mapping is mandatory.
-c, --config <config>       Info about configuration variables is mandatory.
-a, --all <all>             Generate the wrapperAPI package for entire controller functions
-p, --project <path>        Path to the Ochain chaincode project to generate the WrapperAPI package. If not specified, it defaults to current directory.
O exemplo a seguir mostra como gerar APIs wrapper para um projeto de chaincode local.
ochain generateFnAPI --mapping <info object about function mapping> --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>

Ao executar o comando generateFnAPI, você será solicitado a substituir qualquer pacote de API do wrapper anterior que exista no local de seleção.

O Gateway de API limita a 50 o número de rotas que podem ser criadas em uma única implantação. Se você tentar usar o comando generateFnAPI para gerar mais de 50 APIs de wrapper, será solicitado a criar vários gateways. A criação de vários gateways com o mesmo prefixo de caminho de implantação mantém um caminho base consistente em todos os pontos finais da API do wrapper. Se você optar por não criar vários gateways, a geração de API do wrapper será cancelada.

Opções de Comando

-m, --mapeamento <mapping>
A opção de mapeamento define a configuração das APIs do controlador, especificando os nomes do ponto final e quais APIs do controlador exigem geração de API do encapsulador. O mapa é um objeto JSON de pares de chave/valor, em que a chave é o nome da API do controlador e o valor é o ponto final personalizado a ser associado a essa API do controlador.

O exemplo a seguir mostra um mapeamento para chaincode que usa o padrão estendido do Token Taxonomy Framework.

ochain generateFnAPI --mapping '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>
-c, --config <config>
A opção de configuração é usada para especificar as variáveis de configuração necessárias para o pacote de API do wrapper. É um objeto JSON de pares de chave/valor, em que a chave é o nome da variável de configuração e o valor é o valor da variável de configuração. Todas as variáveis de configuração são obrigatórias para gerar um pacote de API wrapper. Se nenhuma das variáveis a seguir for passada para o comando, a geração da API do wrapper falhará. Você pode editar esses valores depois de criar a API do wrapper extraindo o arquivo .zip da API do wrapper.
Nome da variável Descrição
compartment_ocid O OCID do compartimento no OCI (Oracle Cloud Infrastructure).
compartment_name O nome do compartimento do OCI.
identity_domain O domínio de identidades a ser usado.
blockchain_channel O nome do canal do Oracle Blockchain Platform no qual o chaincode é implantado.
blockchain_url O URL do Oracle Blockchain Platform associado à implantação de chaincode.
blockchain_chaincode O nome do chaincode para o qual gerar APIs wrapper.
blockchain_sync O valor de sincronização a ser incluído no payload para chamadas de API.
blockchain_timeout O valor de timeout a ser incluído no payload para chamadas de API.
vcn_display_name O nome para exibição da rede virtual na nuvem do OCI.
application_display_name O nome para exibição do aplicativo OCI.
gateway_display_name O nome para exibição do Gateway de API.
deployment_display_name O nome para exibição da implantação no Gateway de API.
deployment_path_prefix O prefixo do caminho de implantação no Gateway de API, que especifica o caminho no qual as rotas são implantadas. A variável deployment_path_prefix deve começar com uma barra (/).
ocir_repo_name O nome do repositório do OCI Registry. A variável ocir_repo_name deve ter todas letras minúsculas.
policy_name O nome da política que permite o gerenciamento controlado e o acesso a APIs por meio de permissões definidas para grupos e compartimentos dentro da organização

O exemplo a seguir mostra um mapeamento para chaincode que usa o padrão estendido do Token Taxonomy Framework.

ochain generateFnAPI -m '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}'
-a, --all <all>
A opção all gera API wrapper para todas as APIs do controlador que são definidas no chaincode. Se true, esta opção substituirá a opção de mapeamento. Cada API do wrapper recebe um ponto final padrão, que corresponde ao nome da API. Se você especificar a opção all, ainda deverá fornecer um objeto JSON ({}) vazio para a opção de mapeamento.

O exemplo a seguir mostra um mapeamento para chaincode que usa o padrão estendido do Token Taxonomy Framework.

ochain generateFnAPI -m '{}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}' -a true