Composants du paquetage d'API d'encapsuleur

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

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

Ensemble d'API d'encapsuleur

L'ensemble d'API d'encapsuleur contient un script Terraform qui provisionne toutes les ressources Oracle Cloud Infrastructure (OCI) nécessaires à la création des API d'encapsuleur. Il existe des fichiers de prise en charge Terraform supplémentaires et un dossier Oracle Functions pour chaque API. Les ensembles d'API d'encapsuleur créent les ressources OCI suivantes.

  • Réseau en nuage virtuel (VCN) : Établit l'infrastructure de réseau pour la communication.
  • Applications (Oracle Functions) : Déploie des fonctions sans serveur pour gérer la logique d'API.
  • Passerelle d'API : Crée la passerelle pour gérer et acheminer les demandes d'API.
  • Déploiement d'API : Configure et déploie les API sur la passerelle d'API.
  • Politique de déploiement d'API : Configure les politiques IAM nécessaires pour activer l'accès sécurisé.
  • Registre OCI : Fournit un registre de conteneurs pour la gestion des images Docker.
Après avoir généré des API d'encapsuleur, si vous voulez modifier des variables de configuration, vous pouvez les mettre à jour dans Visual Studio Code, ou vous pouvez extraire l'ensemble d'API d'encapsuleur et mettre à jour le fichier terraform.tfvars avec des points d'extrémité et des noms de ressource mis à jour. Modifiez la variable function_paths dans le fichier terraform.tfvars pour mettre à jour un point d'extrémité. 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 le point d'extrémité de l'API
  • type : Spécifie 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\"]}}"

Palette Postman Collection

La collection Postman comprend des points d'extrémité et des données utiles mis à jour pour toutes les API. Le code suivant présente un exemple de données utiles.
{
    "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 la collection Postman.
Variable Description Valeur par défaut
bc-admin-user Utilisateur administrateur, doté du rôle d'administrateur, qui a accès à toutes les demandes POST. Par défaut, cet utilisateur est l'appelant de toutes les demandes POST du code de chaîne. valeur bc-admin-user
bc-admin-user-password Mot de passe de l'utilisateur administrateur. bc-admin-user-password valeur
bc-org-id ID 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 bc-userid valeur
bc-token-id ID 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 endosseurs répertorie les pairs spécifiques (par exemple : peer1, peer2) pour endosser cette transaction. ["org1-xyz-abc.blockchain.ocp.oraclecloud.com :20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com :20009"]
api-gateway-endpoint Point d'extrémité de chaque demande, qui sert de chemin de base pour les points d'extrémité d'API d'encapsuleur.

S'il y a moins de 50 API, un seul point d'extrémité est utilisé. S'il existe plus de 50 API, les points d'extrémité sont générés dynamiquement en tant que 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 d'API d'encapsulation de code de chaîne confidentielle, qui nécessite l'en-tête pair pour toutes les API de programme de définition. org-xyz-abc.blockchain.ocp.oraclecloud.com : 20009

Après le déploiement de l'ensemble d'API d'encapsuleur, la sortie du déploiement de ressource de pile est un objet JSON qui contient les valeurs de point d'extrémité de passerelle. Si vous générez plus de 50 API, plusieurs points d'extrémité de passerelle sont générés, un pour 50 API. Vous devez mettre à jour les variables de collection Postman liées à ces points d'extrémité. Les variables liées aux points d'extrémité de la collection Postman doivent être mises à jour avec les valeurs appropriées issues de la sortie du déploiement du package d'API wrapper dans le gestionnaire de ressources de pile.

Toutes les API de définition de la collection Postman d'API d'encapsuleur incluent le paramètre endorsers ou sameOrgEndorser dans les données utiles de la demande. Les informations qui spécifient les API nécessitant le paramètre sameOrgEndorser sont définies dans le paramètre sameOrgEndorserOptionInWrapperAPI dans le fichier .ochain.json du code de chaîne. sameOrgEndorser sera réglé à Vrai dans les données utiles des API listées dans ce paramètre. Toutes les autres API de l'outil de définition incluront le paramètre endorsers à la place. L'exemple suivant présente le paramètre pour le code de 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, au besoin. Lorsque vous générez des API d'encapsulation, les API spécifiées incluent alors le paramètre sameOrgEndorser comme true dans leurs données utiles.