Composants d'ensemble d'API d'encapsuleur
Les ensembles d'API d'encapsulation contiennent un fichier d'archives des API d'encapsulation, un script Terraform pour le déploiement et une collection Postman correspondante.
- Le fichier d'archives de l'API d'encapsuleur est nommé
<ChaincodeName>WrapperAPI.zip
. Il contient également un script Terraform qui doit être déployé dans 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 du wrapper.
Ensemble API d'encapsuleur
L'ensemble d'API d'encapsulation contient un script Terraform qui provisionne toutes les ressources Oracle Cloud Infrastructure (OCI) nécessaires à la création des API d'encapsulation. 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.
terraform.tfvars
avec des points d'extrémité et des noms de ressource mis à jour et le fichier routes.go
avec des points d'extrémité mis à jour. Modifiez la variable function_paths
dans le fichier terraform.tfvars
pour mettre à jour un point d'extrémité. La variable function_paths définit des points d'extrémité avec la syntaxe suivante : {endpoint, methodType}
. Le texte suivant présente un exemple de variable function_paths
.function_paths="[{\"endpoint\":\"/activateCBDCAccount\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/addCBAdmin\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/approveBurn\",\"methodType\":[\"POST\"]}]"
Le fichier routes.go
se trouve dans le dossier <ChaincodeName>OCIFunction
. La variable routeData
contient des métadonnées pour toutes les routes créées dans la passerelle, notamment le nom de la route, les arguments et l'existence d'arguments facultatifs. Lorsque vous mettez à jour un point d'extrémité dans la variable function_paths
dans le fichier terraform.tfvars
, vous devez également mettre à jour l'entrée correspondante dans la variable routeData
dans le fichier routes.go
, comme illustré dans l'exemple suivant.var routeData = map[string]Route{
"/activateCBDCAccount": {
Args: []string{"activateAccount", "orgId", "userId", "tokenId"},
OptionalParams: true,
},
}
Collection Postman
Les collections Postman prennent désormais en charge le code de chaîne confidentiel et l'authentification OAuth 2.0. Pour plus d'informations, voir Améliorations apportées aux collections Postman.
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
Variable | Description | Valeur par défaut |
---|---|---|
bc-admin-user |
L'utilisateur administrateur, qui a le rôle admin et peut accéder à 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'administrateur. | valeur bc-admin-user-password |
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
|
valeur bc-user-id |
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 endossateurs 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'encapsulation.
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 |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
bc-url |
URL mandataire REST de l'instance Oracle Blockchain Platform. | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
access-token-url |
URL du jeton d'accès Oracle Identity Cloud Service (IDCS). Par exemple : <idcs_endpoint>/oauth/v1/token |
valeur access-token-url |
client-id |
ID client de l'instance Oracle Blockchain Platform. | client-ID |
client-secret |
Clé secrète client de l'instance Oracle Blockchain Platform. | client-secret |
peer |
Cette variable n'existe que pour la collection Postman de l'API d'encapsuleur de code de chaîne confidentiel, qui nécessite l'en-tête pair pour toutes les API de programmeur et d'accesseur. | 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 chaque 50 API. Vous devez mettre à jour les variables de collection Postman associées à ces points d'extrémité. Les variables liées au point d'extrémité de la collection Postman doivent être mises à jour avec les valeurs appropriées provenant de la sortie du déploiement du paquetage d'API d'encapsuleur dans le gestionnaire de ressources de pile.
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. Pour les API listées dans ce paramètre, sameOrgEndorser
sera réglé à Vrai dans leurs données utiles. Toutes les autres API de réglage incluront plutôt le paramètre endorsers
. L'exemple suivant montre le paramètre pour le code de chaîne CBDC 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 d'encapsuleur, les API spécifiées incluent ensuite le paramètre sameOrgEndorser
en tant que true
dans leurs données utiles.