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.
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