Componentes do Pacote da API do Encapsulador
Os pacotes de API do wrapper contêm um arquivo compactado das APIs do wrapper, um script Terraform para implantação e uma coleção Postman correspondente.
- O arquivo compactado da API wrapper é chamado
<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 de API 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 wrapper criam os recursos do OCI a seguir.
- 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 do IAM necessárias para permitir o acesso seguro.
- OCI Registry: Fornece um registro de contêiner para gerenciar imagens do Docker.
terraform.tfvars
com pontos finais e nomes de recursos atualizados e o arquivo routes.go
com pontos finais atualizados. Edite a variável function_paths
no arquivo terraform.tfvars
para atualizar um ponto final. A variável function_paths define pontos finais com a seguinte sintaxe: {endpoint, methodType}
. O texto a seguir mostra um exemplo de uma variável function_paths
.function_paths="[{\"endpoint\":\"/activateCBDCAccount\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/addCBAdmin\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/approveBurn\",\"methodType\":[\"POST\"]}]"
O arquivo routes.go
está na pasta <ChaincodeName>OCIFunction
. A variável routeData
contém metadados para todas as rotas criadas no gateway, incluindo o nome da rota, os argumentos e se há argumentos opcionais. Quando você atualizar um ponto final na variável function_paths
no arquivo terraform.tfvars
, também deverá atualizar a entrada correspondente na variável routeData
no arquivo routes.go
, conforme mostrado no exemplo a seguir.var routeData = map[string]Route{
"/activateCBDCAccount": {
Args: []string{"activateAccount", "orgId", "userId", "tokenId"},
OptionalParams: true,
},
}
Coleção Postman
As coleções de carteiros agora suportam a autenticação chaincode e OAuth 2.0 confidencial. Para obter mais informações, consulte Aprimoramentos nas Coleções Postman.
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
Variável | Descrição | Valor padrão |
---|---|---|
bc-admin-user |
O usuário administrativo, que tem a atribuição admin e pode acessar todas as solicitações POST. Por padrão, esse usuário é o chamador de todas as solicitações POST no chaincode.
|
bc-admin-valor do usuário |
bc-admin-user-password |
Senha de usuário administrativo. | 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 de 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 da API do encapsulador.
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 |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
bc-url |
O URL do proxy REST da instância do Oracle Blockchain Platform. | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
access-token-url |
O URL do token de acesso do IDCS (Oracle Identity Cloud Service). Por exemplo: <idcs_endpoint>/oauth/v1/token |
valor access-token-url |
client-id |
O ID do cliente da instância do Oracle Blockchain Platform. | cliente-id |
client-secret |
O segredo do cliente da instância do Oracle Blockchain Platform. | cliente-segredo |
peer |
Essa variável só existe para a coleção Postman da API encapsuladora de chaincode confidencial, que requer o cabeçalho de pareamento para todas as APIs setter e getter. | org-xyz-abc.blockchain.ocp.oraclecloud.com:20009 |
Depois de implantar o pacote de API do wrapper, a saída da implantação de recursos de pilha é um objeto JSON que contém os valores do 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. Atualize 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.
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 neste parâmetro terão sameOrgEndorser
definido como verdadeiro em seus payloads. Todas as outras APIs do 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.