Ich versuche, beim Aufruf von API-Gateway-Endpunkten über das JavaScript-SDK Pfadparameter festzulegen und habe kein Glück. Es sieht so aus, als hätte ich etwas falsch konfiguriert oder es liegt ein Fehler in der SDK-Generation vor.Festlegen von Pfadparametern in AWS API Gateway JavaScript-SDK
Ich kann Endpunkte erfolgreich aufrufen, die Pfadparameter nicht übernehmen, aber wenn ich versuche, einen Parameter als Pfadparameter übergeben, ersetzt das SDK nur den Pfadparameter mit einem Leerzeichen, und mein Aufruf schlägt fehl.
Beispiel: angenommen, client
ist ein ordnungsgemäß initialisierter API-Gateway-Client. Ich habe einen Endpunkt namens /measurement
mit einem Kind von /measurement/{id}
. Ich kann beide direkt anrufen.
client.measurementGet({},{});
- erfolgreich ruft mein /measurement
Endpunkt client.measurementIdGet({"id": "1234"}, {});
- Browser macht einen Aufruf an /measurement/
statt /measurement/1234
an der Quelle meines apigClient.js Blick scheint es, dass die SDK-Generator nicht Pfadparameter in das setzt Liste der Parameter, nach denen gesucht wird. Zum Beispiel sieht der Code meiner erzeugt measurementIdGet
Methode wie folgt:
apigClient.measurementIdGet = function (params, body, additionalParams) {
if(additionalParams === undefined) { additionalParams = {}; }
apiGateway.core.utils.assertParametersDefined(params, [], ['body']);
var measurementIdGetRequest = {
verb: 'get'.toUpperCase(),
path: pathComponent + uritemplate('/measurement/{id}').expand(apiGateway.core.utils.parseParametersToObject(params, [])),
headers: apiGateway.core.utils.parseParametersToObject(params, []),
queryParams: apiGateway.core.utils.parseParametersToObject(params, []),
body: body
};
return apiGatewayClient.makeRequest(measurementIdGetRequest, authType, additionalParams, config.apiKey);
};
Ich grub in die assertParametersDefined
und parseParametersToObject
und es sieht aus wie diese Methoden eine Liste von Parametern erwarten zu suchen. In beiden Fällen hat das SDK leere Listen generiert, anstatt meinen Pfadparameter dorthin zu setzen.
Wenn ich manuell die erzeugte Datei aktualisieren, die beiden Linien zu
apiGateway.core.utils.assertParametersDefined(params, ['id'], ['body']);
und
apiGateway.core.utils.parseParametersToObject(params, ['id'])
Das SDK macht den richtigen Anruf zu ändern.
Fehle ich etwas in meiner Konfiguration oder gibt es einen Fehler im Code-Generator?
Ich habe das gleiche Problem funktioniert. Gibt es hierzu Neuigkeiten? @ Mason – johnny
Das gleiche Problem für mich. Ich habe im Forum danach gefragt und habe keine Antwort bekommen: https://forums.aws.amazon.com/thread.jspa?messageID=734395. Wer weiß, ob der SDK-Generator Open Source ist?Konnte es nirgendwo finden – Sam
Entschuldigung, um aber jedes Update hier zu Bug? Immer noch dieses Problem – AvnerSo