Composants de package d'API de wrapper

Les packages d'API de wrapper contiennent un fichier d'archive des API de wrapper, un script Terraform pour le déploiement et une collection Postman correspondante.

  • Le fichier d'archive d'API de wrapper est nommé <ChaincodeName>WrapperAPI.zip. Il contient également un script Terraform qui doit être déployé sur la ressource de pile.
  • Le fichier de collecte Postman est nommé <ChaincodeName>_WrapperAPI.postman_collection.json. Vous pouvez utiliser cette collection pour appeler toutes les API de wrapper.

Package API wrapper

Le package d'API de wrapper contient un script Terraform qui provisionne toutes les ressources Oracle Cloud Infrastructure (OCI) nécessaires à la création des API de wrapper. Des fichiers de support Terraform supplémentaires et un dossier Oracle Functions sont disponibles pour chaque API. Les packages d'API de wrapper créent les ressources OCI suivantes.

  • Réseau cloud virtuel (VCN) : établit l'infrastructure réseau pour la communication.
  • Applications (Oracle Functions) : déploie des fonctions sans serveur pour gérer la logique d'API.
  • API Gateway : crée la passerelle pour gérer et acheminer les demandes d'API.
  • Déploiement d'API : configure et déploie les API sur API Gateway.
  • Stratégie de déploiement d'API : configure les stratégies IAM nécessaires pour activer l'accès sécurisé.
  • OCI Registry : fournit un registre de conteneurs pour la gestion des images Docker.
Après avoir généré des API de wrapper, si vous voulez modifier des variables de configuration, vous pouvez les mettre à jour dans Visual Studio Code, ou extraire le package d'API de wrapper et mettre à jour le fichier terraform.tfvars avec des adresses et des noms de ressource mis à jour. Modifiez la variable function_paths dans le fichier terraform.tfvars pour mettre à jour une adresse. La variable function_paths est un objet JSON où la clé est le nom de l'API et la valeur est un autre objet JSON avec les deux clés suivantes :
  • path : définit l'adresse pour l'API
  • type : indique le type de demande (POST ou GET).
Le texte suivant présente un exemple de variable function_paths.
function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"

Collection Postman

La collection Postman inclut des adresses et des charges utiles mises à jour pour toutes les API. Le code suivant présente un exemple de charge utile.
{
    "orgId": "{{bc-org-id}}",
    "userId": "user1",
    "tokenType": "fungible",
    "applicationGroups": "[\"application_groups value\"]",
    "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
    "endorsers": {{endorsers}}
}
Le tableau suivant présente les variables de collection Postman.
Variable Description Valeur par défaut
bc-admin-user L'administrateur, qui dispose du rôle d'administrateur auquel il a accès à toutes les demandes POST. Par défaut, cet utilisateur est l'appelant de toutes les demandes POST dans le code chaîne. valeur bc-admin-user
bc-admin-user-password Mot de passe de l'administrateur. valeur bc-admin-user-password
bc-org-id ID d'organisation par défaut dans toutes les demandes POST où orgId est le nom du paramètre valeur bc-org-id
bc-user-id ID utilisateur par défaut dans toutes les demandes POST où userId est le nom du paramètre valeur bc-user-id
bc-token-id ID de jeton par défaut dans toutes les demandes POST où tokenId est le nom du paramètre valeur bc-token-id
endorsers Le tableau des approbateurs répertorie les homologues spécifiques (par exemple : peer1, peer2) pour approuver cette transaction. ["org1-xyz-abc.blockchain.ocp.oraclecloud.com :20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com :20009"]
api-gateway-endpoint Adresse de chaque demande, qui sert de chemin de base pour les adresses d'API de wrapper.

S'il existe moins de 50 API, une seule adresse est utilisée. S'il existe plus de 50 API, les adresses sont générées dynamiquement en tant qu'API-gateway-endpoint1, api-gateway-endpoint2, etc., en fonction du nombre d'API.

https://xyz.apigateway.region.oci.customer-oci.com/CBDC
peer Cette variable existe uniquement pour la collection Postman de l'API d'enveloppeur de code chaîne confidentiel, qui nécessite l'en-tête homologue pour toutes les API de setter. org-xyz-abc.blockchain.ocp.oraclecloud.com :20009

Une fois le package d'API de wrapper déployé, la sortie du déploiement de ressource de pile est un objet JSON contenant les valeurs d'adresse de passerelle. Si vous générez plus de 50 API, plusieurs adresses de passerelle sont générées, une pour 50 API. Vous devez mettre à jour les variables de collection Postman associées à ces adresses. Les variables liées aux adresses de la collection Postman doivent être mises à jour avec les valeurs appropriées provenant de la sortie du déploiement du package d'API wrapper dans Stack Resource Manager.

Toutes les API set de la collection Postman d'API de wrapper incluent le paramètre endorsers ou sameOrgEndorser dans la charge utile de demande. Les informations qui spécifient les API nécessitant le paramètre sameOrgEndorser sont définies dans le paramètre sameOrgEndorserOptionInWrapperAPI du fichier .ochain.json dans le code chaîne. sameOrgEndorser sera défini sur True dans la charge utile des API répertoriées dans ce paramètre. Toutes les autres API set incluront le paramètre endorsers à la place. L'exemple suivant montre le paramètre du code chaîne CBDC de gros.
"sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
Vous pouvez personnaliser le paramètre sameOrgEndorserOptionInWrapperAPI dans le fichier .ochain.json selon vos besoins. Lorsque vous générez des API de wrapper, les API indiquées incluent ensuite le paramètre sameOrgEndorser en tant que true dans leurs charges utiles.