Wrapper-API-Packagekomponenten

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

  • Die Wrapper-API-Archivdatei heißt <ChaincodeName>WrapperAPI.zip. Außerdem enthält es ein Terraform-Skript, das in der Stackressource bereitgestellt werden muss.
  • Die Postman-Collection-Datei heißt <ChaincodeName>_WrapperAPI.postman_collection.json. Mit dieser Sammlung 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. Es gibt zusätzliche Terraform-Supportdateien und einen Oracle Functions-Ordner für jede API. Die Wrapper-API-Packages erstellen die folgenden OCI-Ressourcen.

  • Virtuelles Cloud-Netzwerk (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 zur Verwaltung und Weiterleitung von API-Anforderungen.
  • API-Deployment: Konfiguriert und stellt die APIs im API-Gateway bereit.
  • API-Deployment-Policy: Richtet die erforderlichen IAM-Policys ein, um sicheren Zugriff zu ermöglichen.
  • OCI Registry: Stellt eine Container-Registry zur Verwaltung von Docker-Images bereit.
Wenn Sie Wrapper-APIs generiert haben und Konfigurationsvariablen ändern möchten, können Sie sie in Visual Studio Code aktualisieren. Alternativ können Sie das Wrapper-API-Package extrahieren und die Datei terraform.tfvars mit aktualisierten Endpunkten und Ressourcennamen und die Datei routes.go mit aktualisierten Endpunkten aktualisieren. Bearbeiten Sie die Variable function_paths in der Datei terraform.tfvars, um einen Endpunkt zu aktualisieren. Die Variable function_paths definiert Endpunkte mit der folgenden Syntax: {endpoint, methodType}. Der folgende Text zeigt ein Beispiel für eine Variable function_paths.
function_paths="[{\"endpoint\":\"/activateCBDCAccount\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/addCBAdmin\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/approveBurn\",\"methodType\":[\"POST\"]}]"
Die Datei routes.go befindet sich im Ordner <ChaincodeName>OCIFunction. Die Variable routeData enthält Metadaten für alle im Gateway erstellten Routen, einschließlich Routenname, Argumenten und Angabe, ob optionale Argumente vorhanden sind. Wenn Sie einen Endpunkt in der Variablen function_paths in der Datei terraform.tfvars aktualisieren, müssen Sie auch den entsprechenden Eintrag in der Variablen routeData in der Datei routes.go aktualisieren, wie im folgenden Beispiel dargestellt.
var routeData = map[string]Route{
    "/activateCBDCAccount": {
        Args:           []string{"activateAccount", "orgId", "userId", "tokenId"},
        OptionalParams: true,
    },
}

Postman Sammlung

Postman-Sammlungen unterstützen jetzt vertrauliche Chaincode- und OAuth 2.0-Authentifizierung. Weitere Informationen finden Sie unter Verbesserungen an Postman Collections.

Die Postman-Sammlung enthält aktualisierte Endpunkte und Payloads für alle APIs. Der folgende Code zeigt eine Beispiel-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-Collection-Variablen aufgeführt.
Variable Beschreibung Standardwert
bc-admin-user Der administrative Benutzer, der die Rolle admin hat und auf alle POST-Anforderungen zugreifen kann. Standardmäßig ist dieser Benutzer der Aufrufer aller POST-Anforderungen im Chaincode. bc-admin-user-Wert
bc-admin-user-password Administratives 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
bc-url Die REST-Proxy-URL der Oracle Blockchain Platform-Instanz. https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy
access-token-url Die Oracle Identity Cloud Service-(IDCS-)Zugriffstoken-URL. Beispiel: <idcs_endpoint>/oauth/v1/token access-token-url-Wert
client-id Die Client-ID der Oracle Blockchain Platform-Instanz. Client-Kennung
client-secret Das Client Secret der Oracle Blockchain Platform-Instanz. Client-Secret
peer Diese Variable ist nur für die Confidential-Chaincode-Wrapper-API Postman-Collection vorhanden, die den Peer-Header für alle Setter- und Getter-APIs erfordert. org-xyz-abc.blockchain.ocp.oraclecloud.com:20009

Nachdem Sie das Wrapper-API-Package bereitgestellt haben, ist die Ausgabe des Stackressourcen-Deployments 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 aktualisieren, die sich auf diese Endpunkte beziehen. 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 Postman-Collection der Wrapper-API enthalten entweder den Parameter endorsers oder sameOrgEndorser in der Anforderungs-Payload. Die Informationen, die angeben, welche APIs den Parameter sameOrgEndorser erfordern, werden im Parameter sameOrgEndorserOptionInWrapperAPI in der Datei .ochain.json im Chaincode definiert. Für APIs, die in diesem Parameter aufgeführt werden, 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.