Festlegen von Pfadparametern im AWS API Gateway JavaScript SDK

8

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 gibt einen Bug in der SDK-Generation.

Ich kann erfolgreich Endpunkte aufrufen, die keine Pfadparameter enthalten, aber wenn ich versuche, einen Parameter als Pfadparameter zu übergeben, ersetzt das SDK einfach den Pfadparameter durch ein Leerzeichen und mein Aufruf schlägt fehl.

Beispiel: 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({},{}); - ruft erfolgreich meinen /measurement Endpunkt auf client.measurementIdGet({"id": "1234"}, {}); - Der Browser ruft /measurement/ anstelle von /measurement/1234

auf

Wenn ich mir die Quelle meiner apigClient.js ansehe, scheint es, dass der SDK-Generator keine Pfadparameter in die Liste der Parameter einfügt, nach denen er sucht. Zum Beispiel sieht der Code meiner generierten measurementIdGet -Methode folgendermaßen aus:

%Vor%

Ich habe in assertParametersDefined und parseParametersToObject gegraben und es sieht so aus, als würden diese Methoden eine Liste von Parametern erwarten. In beiden Fällen hat das SDK leere Listen generiert, anstatt meinen Pfadparameter dorthin zu setzen.

Wenn ich die generierte Datei manuell aktualisiere, um die beiden Zeilen in

zu ändern

apiGateway.core.utils.assertParametersDefined(params, ['id'], ['body']);

und

apiGateway.core.utils.parseParametersToObject(params, ['id'])

Das SDK macht den richtigen Anruf.

Fehle ich etwas in meiner Konfiguration oder gibt es einen Fehler im Code Generator?

    
Mason 12.03.2016, 20:40
quelle

2 Antworten

1

Wenn Sie Wolkenformationen wie mich verwenden. Sie müssen es in der hinzufügen RequestParameters .

für eine Ressource wie diese / api / pets / {id} / attributes / {attrid} folgenden Code funktioniert

%Vor%     
srisaiswaroop 07.06.2017 07:41
quelle
0

Wenn Sie davon ausgehen, dass Sie eine Swagger-Definition zum Erstellen der API importieren, führt die Definition von parameters auf Methoden- und nicht auf Pfadebene zu einem generierten SDK mit dem key , das korrekt ausgeführt wird.

%Vor%

Obwohl die Definition von parameters auf der Pfadebene gemäß der Swagger-Spezifikation korrekt ist und API Gateway sie in der erstellten API verwendet, scheint es, dass API Gateway sie in einigen Kontexten ignoriert.

    
Jonathan Spooner 18.04.2017 19:41
quelle