Ein von API Gateway generiertes JavaScript-SDK für eine REST-API verwenden - Amazon API Gateway

Ein von API Gateway generiertes JavaScript-SDK für eine REST-API verwenden

Anmerkung

Für diese Anleitungen müssen Sie die Anleitungen unter ausgeführt habe Generieren von SDKs für eine API mit der API Gateway-Konsole.

Wichtig

Wenn für Ihre API nur ANY-Methoden definiert wurden, enthält das generierte SDK-Paket keine apigClient.js-Datei und Sie müssen die ANY-Methoden selbst definieren.

So installieren und initiieren Sie ein JavaScript-SDK und rufen es auf, das von API Gateway für eine REST-API generiert wurde:
  1. Extrahieren Sie den Inhalt der von API Gateway generierten ZIP-Datei, die Sie zuvor heruntergeladen haben.

  2. Aktivieren Sie Cross-Origin Resource Sharing (CORS) für alle Methoden, die das von API Gateway generierte SDK aufrufen werden. Detaillierte Anweisungen finden Sie unter Aktivieren von CORS für eine REST-API-Ressource.

  3. Bauen Sie in Ihre Webseite Verweise auf die folgenden Scripts ein.

    <script type="text/javascript" src="lib/axios/dist/axios.standalone.js"></script> <script type="text/javascript" src="lib/CryptoJS/rollups/hmac-sha256.js"></script> <script type="text/javascript" src="lib/CryptoJS/rollups/sha256.js"></script> <script type="text/javascript" src="lib/CryptoJS/components/hmac.js"></script> <script type="text/javascript" src="lib/CryptoJS/components/enc-base64.js"></script> <script type="text/javascript" src="lib/url-template/url-template.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/sigV4Client.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/apiGatewayClient.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/simpleHttpClient.js"></script> <script type="text/javascript" src="lib/apiGatewayCore/utils.js"></script> <script type="text/javascript" src="apigClient.js"></script>
  4. Initialisieren Sie in Ihrem Code das von API Gateway generierte SDK, indem Sie Code ähnlich dem folgenden verwenden.

    var apigClient = apigClientFactory.newClient();

    Um das von API Gateway generierte SDK mit Anmeldeinformationen für AWS zu initialisieren, verwenden Sie Code ähnlich wie im Folgenden. Wenn Sie AWS-Anmeldeinformationen verwenden, werden alle Anforderungen an die API signiert.

    var apigClient = apigClientFactory.newClient({ accessKey: 'ACCESS_KEY', secretKey: 'SECRET_KEY', });

    Um einen API-Schlüssel mit dem von API Gateway generierten SDK zu verwenden, übergeben Sie den API-Schlüssel als Parameter an das Factory-Objekt, indem Sie Code ähnlich dem folgenden verwenden. Wenn Sie einen API-Schlüssel verwenden, ist dieser als Teil des x-api-key-Headers spezifiziert, und alle Anforderungen an die API werden signiert. Das bedeutet, dass Sie die entsprechenden CORS Accept-Header für jede Anforderung festlegen müssen.

    var apigClient = apigClientFactory.newClient({ apiKey: 'API_KEY' });

  5. Rufen Sie die API-Methoden in API Gateway auf, indem Sie Code ähnlich dem folgenden verwenden. Jeder Aufruf gibt eine Zusage mit erfolgreichen und fehlgeschlagenen Callbacks zurück.

    var params = { // This is where any modeled request parameters should be added. // The key is the parameter name, as it is defined in the API in API Gateway. param0: '', param1: '' }; var body = { // This is where you define the body of the request, }; var additionalParams = { // If there are any unmodeled query parameters or headers that must be // sent with the request, add them here. headers: { param0: '', param1: '' }, queryParams: { param0: '', param1: '' } }; apigClient.methodName(params, body, additionalParams) .then(function(result){ // Add success callback code here. }).catch( function(result){ // Add error callback code here. });

    Hier wird methodName aus dem Ressourcenpfad der Methodenanforderung und dem HTTP-Verb gebildet. Für die SimpleCalc-API, die SDK-Methoden für die API-Methoden von

    1. GET /?a=...&b=...&op=... 2. POST / { "a": ..., "b": ..., "op": ...} 3. GET /{a}/{b}/{op}

    Die entsprechenden SDK-Methoden sind:

    1. rootGet(params); // where params={"a": ..., "b": ..., "op": ...} is resolved to the query parameters 2. rootPost(null, body); // where body={"a": ..., "b": ..., "op": ...} 3. aBOpGet(params); // where params={"a": ..., "b": ..., "op": ...} is resolved to the path parameters