Wrapper-API-Packagekomponenten

Wrapper-API-Packages enthalten eine Archivdatei der Wrapper-APIs, ein Terraform-Skript für das Deployment und eine entsprechende Postman-Sammlung.

  • Die Wrapper-API-Archivdatei hat den Namen <ChaincodeName>WrapperAPI.zip. Außerdem enthält es ein Terraform-Skript, das in der Stackressource bereitgestellt werden muss.
  • Die Postman-Sammlungsdatei hat den Namen <ChaincodeName>_WrapperAPI.postman_collection.json. Mit dieser Collection können Sie alle Wrapper-APIs aufrufen.

Wrapper-API-Package

Das Wrapper-API-Package enthält ein Terraform-Skript, das alle Oracle Cloud Infrastructure-(OCI-)Ressourcen bereitstellt, die zum Erstellen der Wrapper-APIs erforderlich sind. Für jede API sind zusätzliche Terraform-Supportdateien und ein Oracle Functions-Ordner vorhanden. Die Wrapper-API-Packages erstellen die folgenden OCI-Ressourcen.

  • Virtual Cloud Network (VCN): Richtet die Netzwerkinfrastruktur für die Kommunikation ein.
  • Anwendungen (Oracle Functions): Stellt serverlose Funktionen zur Verarbeitung der API-Logik bereit.
  • API Gateway: Erstellt das Gateway zum Verwalten und Weiterleiten von API-Anforderungen.
  • API-Deployment: Konfiguriert und stellt die APIs im API-Gateway bereit.
  • API-Deployment-Policy: Richtet die erforderlichen IAM-Policys ein, um den sicheren Zugriff zu ermöglichen.
  • OCI-Registry: Stellt eine Container-Registry zur Verwaltung von Docker-Images bereit.
Wenn Sie nach der Generierung von Wrapper-APIs Konfigurationsvariablen ändern möchten, können Sie diese in Visual Studio Code aktualisieren oder das Wrapper-API-Package extrahieren und die Datei terraform.tfvars mit aktualisierten Endpunkten und Ressourcennamen aktualisieren. Bearbeiten Sie die Variable function_paths in der Datei terraform.tfvars, um einen Endpunkt zu aktualisieren. Die Variable function_paths ist ein JSON-Objekt, bei dem der Schlüssel der API-Name ist und der Wert ein anderes JSON-Objekt mit den folgenden zwei Schlüsseln ist:
  • path: Definiert den Endpunkt für die API
  • type: Gibt den Anforderungstyp an (POST oder GET)
Der folgende Text zeigt ein Beispiel für eine Variable function_paths.
function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"

Postman-Sammlung

Die Postman-Sammlung enthält aktualisierte Endpunkte und Payloads für alle APIs. Der folgende Code zeigt ein Beispiel für eine Payload.
{
    "orgId": "{{bc-org-id}}",
    "userId": "user1",
    "tokenType": "fungible",
    "applicationGroups": "[\"application_groups value\"]",
    "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
    "endorsers": {{endorsers}}
}
In der folgenden Tabelle sind die Postman-Sammlungsvariablen aufgeführt.
Variable Beschreibung Standardwert
bc-admin-user Der Admin-Benutzer mit Administratorrolle, der Zugriff auf alle POST-Anforderungen hat. Standardmäßig ist dieser Benutzer der Aufrufer aller POST-Anforderungen im Chaincode. bc-admin-user-Wert
bc-admin-user-password Admin-Benutzerkennwort. bc-admin-user-password-Wert
bc-org-id Die Standardorganisations-ID in allen POST-Anforderungen, wobei orgId der Parametername ist bc-org-id-Wert
bc-user-id Die Standardbenutzer-ID in allen POST-Anforderungen, wobei userId der Parametername ist bc-user-id-Wert
bc-token-id Die Standardtoken-ID in allen POST-Anforderungen, wobei tokenId der Parametername ist bc-Token-ID-Wert
endorsers Das Endorser-Array listet die spezifischen Peers auf (Beispiel: peer1, peer2), um diese Transaktion zu bestätigen. ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"]
api-gateway-endpoint Der Endpunkt jeder Anforderung, der als Basispfad für Wrapper-API-Endpunkte dient.

Wenn weniger als 50 APIs vorhanden sind, wird ein einzelner Endpunkt verwendet. Wenn mehr als 50 APIs vorhanden sind, werden die Endpunkte basierend auf der Anzahl der APIs dynamisch als api-gateway-endpoint1, api-gateway-endpoint2 usw. generiert.

https://xyz.apigateway.region.oci.customer-oci.com/CBDC
peer Diese Variable ist nur für die Postman-Collection der Confidential Chaincode-Wrapper-API vorhanden, für die der Peerheader für alle Setter-APIs erforderlich ist. org-xyz-abc.blockchain.ocp.oraclecloud.com: 20009

Nachdem Sie das Wrapper-API-Package bereitgestellt haben, ist die Ausgabe aus dem Stackressourcen-Deployment ein JSON-Objekt, das die Gatewayendpunktwerte enthält. Wenn Sie mehr als 50 APIs generieren, werden mehrere Gateway-Endpunkte generiert, eine für alle 50 APIs. Sie müssen die Postman-Collection-Variablen für diese Endpunkte aktualisieren. Die Endpunktvariablen in der Postman-Collection müssen mit den entsprechenden Werten aus der Ausgabe des Wrapper-API-Package-Deployments im Stack Resource Manager aktualisiert werden.

Alle Setter-APIs in der Wrapper-API-Postman-Collection enthalten entweder den Parameter endorsers oder sameOrgEndorser in der Anforderungs-Payload. Die Informationen, die angeben, welche APIs den Parameter sameOrgEndorser benötigen, werden im Parameter sameOrgEndorserOptionInWrapperAPI in der Datei .ochain.json im Chaincode definiert. Für die in diesem Parameter aufgeführten APIs ist sameOrgEndorser in ihren Payloads auf "true" gesetzt. Alle anderen Setter-APIs enthalten stattdessen den Parameter endorsers. Das folgende Beispiel zeigt den Parameter für den CBDC-Großhandelskettencode.
"sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
Sie können den Parameter sameOrgEndorserOptionInWrapperAPI in der Datei .ochain.json nach Bedarf anpassen. Wenn Sie Wrapper-APIs generieren, nehmen die angegebenen APIs dann den Parameter sameOrgEndorser als true in ihre Payloads auf.
Weitere Informationen zur Verwendung von Postman-Sammlungen finden Sie in den folgenden Themen.