Gerar APIs do Wrapper Usando a CLI
A versão aprimorada do Blockchain App Builder inclui o comando generateFnAPI
, que gera APIs de encapsulador para todas as APIs de 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 quaisquer pacotes de API do wrapper anteriores que existam 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 do wrapper, será solicitado que você crie 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 de API do wrapper. Se você optar por não criar vários gateways, a geração da API do encapsulador será cancelada. Você pode usar o parâmetro gateway_ocids
conforme descrito nas informações a seguir para reutilizar gateways existentes.
Opções de Comando
- -m, --mapping <mapping>
- A opção de mapeamento define a configuração das APIs do controlador, especificando os nomes dos pontos finais e quais APIs do controlador exigem a geração da 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 Token Taxonomy Framework estendido.
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 encapsulador. É 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, exceto
gateway_ocids
, são obrigatórias para gerar um pacote de API wrapper. Se qualquer uma das variáveis a seguir, excetogateway_ocids
, não for informada ao comando, a geração da API do encapsulador 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 em que 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 do 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 as letras minúsculas.policy_name
O nome da política que permite gerenciamento controlado e acesso a APIs por meio de permissões definidas para grupos e compartimentos dentro da organização gateway_ocids
Um objeto JSON de OCIDs (Oracle Cloud Identifiers) para reutilização de Gateways de API existentes. Especifique um gateway para cada 50 APIs do wrapper. Se você não especificar um parâmetro gateway_ocids
, o comando criará Gateways de API.O exemplo a seguir mostra um comando para chaincode que usa o padrão do Token Taxonomy Framework estendido.
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"}'
O exemplo a seguir mostra um comando que usa o parâmetro
gateway_ocids
.ochain generateFnAPI -m '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest"}' -c '{"compartment_ocid":"ocid1.compartment.oc1..xxxx","compartment_name":"MyCompartment","identity_domain":"OracleIdentityCloudService","blockchain_channel":"default","blockchain_url":"https://blockchain-url","blockchain_chaincode":"my_chaincode","blockchain_sync":true,"blockchain_timeout":6000,"vcn_display_name":"myVCN","application_display_name":"myApp","gateway_display_name":"myGateway","deployment_display_name":"myDeployment","deployment_path_prefix":"myprefix","ocir_repo_name":"myRepo","policy_name":"myPolicy","gateway_ocids":"{\"1\":\"ocid1.apigateway.oc1.xxx\",\"2\":\"ocid1.apigateway.oc1.yyy\"}"}'
- -a, --all <all>
- A opção all gera a API wrapper para todas as APIs do controlador definidas no chaincode. Se
true
, essa opção substituirá a opção de mapeamento. Cada API 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 Token Taxonomy Framework estendido.
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