Componentes do Pacote da API Wrapper

Os pacotes de API do Wrapper contêm um arquivo compactado das APIs do wrapper, um script do Terraform para implantação e uma coleção Postman correspondente.

  • O arquivo compactado da API do wrapper é chamado de <ChaincodeName>WrapperAPI.zip. Ele também contém um script Terraform que deve ser implantado no recurso de pilha.
  • O arquivo de coleção Postman é chamado <ChaincodeName>_WrapperAPI.postman_collection.json. Você pode usar essa coleção para chamar todas as APIs do wrapper.

Pacote da API do Wrapper

O pacote de API do wrapper contém um script Terraform que provisiona todos os recursos do OCI (Oracle Cloud Infrastructure) necessários para criar as APIs do wrapper. Há arquivos de suporte adicionais do Terraform e uma pasta do Oracle Functions para cada API. Os pacotes de API do wrapper criam os seguintes recursos do OCI.

  • Rede Virtual na Nuvem (VCN): Estabelece a infraestrutura de rede para comunicação.
  • Aplicativos (Oracle Functions): Implanta funções sem servidor para tratar a lógica da API.
  • Gateway de API: Cria o gateway para gerenciar e rotear solicitações de API.
  • Implantação de API: Configura e implanta as APIs no Gateway de API.
  • Política de Implantação de API: Configura as políticas de IAM necessárias para permitir o acesso seguro.
  • OCI Registry: Fornece um registro de contêiner para gerenciar imagens do Docker.
Depois de gerar APIs do wrapper, se quiser alterar qualquer variável de configuração, você poderá atualizá-las no Visual Studio Code ou poderá extrair o pacote de APIs do wrapper e atualizar o arquivo terraform.tfvars com pontos finais e nomes de recursos atualizados. Edite a variável function_paths no arquivo terraform.tfvars para atualizar um ponto final. A variável function_paths é um objeto JSON em que a chave é o nome da API e o valor é outro objeto JSON com as duas chaves a seguir:
  • path: Define o ponto final da API
  • type: Especifica o tipo de solicitação (POST ou GET)
O texto a seguir mostra um exemplo de uma variável function_paths.
function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"

Coleção Postman

A coleção Postman inclui pontos finais e payloads atualizados para todas as APIs. O código a seguir mostra um exemplo de payload.
{
    "orgId": "{{bc-org-id}}",
    "userId": "user1",
    "tokenType": "fungible",
    "applicationGroups": "[\"application_groups value\"]",
    "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
    "endorsers": {{endorsers}}
}
A tabela a seguir mostra as variáveis de coleta Postman.
Variável Descrição Valor padrão
bc-admin-user O usuário administrador, que tem a atribuição de administrador na qual tem acesso a todas as solicitações POST. Por padrão, esse usuário é o chamador de todas as solicitações POST no chaincode. valor bc-admin-user
bc-admin-user-password Senha do usuário Admin. valor bc-admin-user-password
bc-org-id O ID da organização padrão em todas as solicitações POST em que orgId é o nome do parâmetro valor bc-org-id
bc-user-id O ID de usuário padrão em todas as solicitações POST em que userId é o nome do parâmetro valor bc-user-id
bc-token-id O ID do token padrão em todas as solicitações POST em que tokenId é o nome do parâmetro valor bc-token-id
endorsers O array de endossadores lista os pares específicos (por exemplo: peer1, peer2) para endossar essa transação. ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"]
api-gateway-endpoint O ponto final de cada solicitação, que serve como um caminho base para pontos finais de API do wrapper.

Se houver menos de 50 APIs, um único ponto final será usado. Se houver mais de 50 APIs, os pontos finais serão gerados dinamicamente como api-gateway-endpoint1, api-gateway-endpoint2 etc., com base no número de APIs.

https://xyz.apigateway.region.oci.customer-oci.com/CBDC
peer Essa variável existe apenas para a coleção Postman da API do encapsulador de chaincode confidencial, que requer o cabeçalho de pareamento para todas as APIs do setter. org-xyz-abc.blockchain.ocp.oraclecloud.com:20009

Depois de implantar o pacote de API wrapper, a saída da implantação de recursos de pilha é um objeto JSON que contém os valores de ponto final do gateway. Se você gerar mais de 50 APIs, vários pontos finais de gateway serão gerados, um para cada 50 APIs. Você deve atualizar as variáveis de coleta Postman relacionadas a esses pontos finais. As variáveis relacionadas ao ponto final na coleção Postman devem ser atualizadas com os valores apropriados da saída da implantação do pacote de API do wrapper no Stack Resource Manager.

Todas as APIs do setter na coleção Postman da API do wrapper incluem o parâmetro endorsers ou sameOrgEndorser no payload da solicitação. As informações que especificam quais APIs exigem o parâmetro sameOrgEndorser são definidas no parâmetro sameOrgEndorserOptionInWrapperAPI no arquivo .ochain.json no chaincode. As APIs listadas nesse parâmetro terão sameOrgEndorser definido como verdadeiro em seus payloads. Todas as outras APIs setter incluirão o parâmetro endorsers. O exemplo a seguir mostra o parâmetro para o chaincode CBDC de atacado.
"sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
Você pode personalizar o parâmetro sameOrgEndorserOptionInWrapperAPI no arquivo .ochain.json conforme necessário. Quando você gerar APIs do wrapper, as APIs especificadas incluirão o parâmetro sameOrgEndorser como true em seus payloads.
Para obter mais detalhes sobre como usar as coleções Postman, consulte os tópicos a seguir.