Sto provando a impostare i parametri del percorso quando si effettuano chiamate agli endpoint del gateway API tramite l'SDK JavaScript e non si ha fortuna. Sembra che io abbia qualcosa di mal configurato o che ci sia un bug nella generazione dell'SDK.Impostazione dei parametri del percorso nel gateway API AWS SDK JavaScript
Sono in grado di chiamare correttamente endpoint che non accettano parametri di percorso ma quando provo a passare un parametro da utilizzare come parametro di percorso, l'SDK sostituisce semplicemente il parametro path con uno spazio vuoto e la mia chiamata ha esito negativo.
Esempio, supporre client
è un client gateway API correttamente inizializzato. Ho un endpoint chiamato /measurement
con un figlio di /measurement/{id}
. Posso chiamare entrambi direttamente.
client.measurementGet({},{});
- chiama con successo il mio /measurement
endpoint client.measurementIdGet({"id": "1234"}, {});
- Browser effettua una chiamata a /measurement/
invece di /measurement/1234
Guardando la fonte dei miei apigClient.js, sembra che il generatore SDK non sta mettendo i parametri di percorso nella elenco dei parametri che sta cercando. Ad esempio, il codice della mia generato measurementIdGet
metodo è simile al seguente:
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);
};
ho scavato nella assertParametersDefined
e parseParametersToObject
e sembra che questi metodi si aspettano un elenco di parametri da cercare. In entrambi i casi l'SDK ha generato liste vuote invece di inserire il mio parametro di percorso.
Se aggiorno manualmente il file generato per modificare le due linee di
apiGateway.core.utils.assertParametersDefined(params, ['id'], ['body']);
e
apiGateway.core.utils.parseParametersToObject(params, ['id'])
L'SDK effettua la chiamata corretta.
Mi manca qualcosa nella configurazione o c'è un errore nel generatore di codice?
Ho questo stesso problema qui. Qualche aggiornamento a questo proposito? @mason – johnny
Stesso problema per me. Ho chiesto informazioni sul forum e non ho ottenuto alcuna risposta: https://forums.aws.amazon.com/thread.jspa?messageID=734395. Qualcuno sa se il generatore SDK è open source?Impossibile trovare da nessuna parte – Sam
Ci scusiamo per l'errore ma qualche aggiornamento qui? Ancora ricevendo questo problema – AvnerSo