Aggiornamento: Come la scorsa settimana, gateway API supporta ora quello che chiamano “catch-all Variabili di percorso”. Vedi API Gateway Update – New Features Simplify API Development.
Sarà necessario creare una risorsa per ogni livello, purtroppo. La ragione di ciò è API Gateway che ti consente di accedere a tali parametri tramite un oggetto.
Ad esempio: method.request.path.XXXX
Quindi, se avete solo /{param}
si poteva accedere a quella con: method.request.path.param
ma se si ha un percorso nidificato (params con slash), che non avrebbe funzionato. Avresti anche un 404 per l'intera richiesta.
Se method.request.path.param
era invece una matrice ... quindi potrebbe ottenere parametri per posizione quando non nominati. Ad esempio method.request.path.param[]
... I parametri nominati potrebbero essere gestiti anche lì, ma l'accesso a questi non sarebbe davvero facile. Richiederebbe l'utilizzo di qualcosa di una sorta di mappatura del percorso JSON (pensa come quello che puoi fare con i loro modelli di mappatura). Purtroppo questo non è il modo in cui viene gestito in API Gateway.
Penso che sia ok anche perché questo potrebbe rendere la configurazione di Gateway API ancora più complessa. Tuttavia, limita anche il gateway API e per gestire questa situazione alla fine si finisce con una configurazione più confusa comunque.
Quindi, si può andare molto lontano qui. Creare lo stesso metodo per più risorse e fare qualcosa del tipo: /{1}/{2}/{3}/{4}/{5}/{6}/{7}
e così via. Quindi è possibile gestire ogni livello di parametro del percorso, se necessario.
Se il numero di parametri è sempre lo stesso, allora sei un po 'più fortunato e hai solo bisogno di impostare un sacco di risorse, ma un metodo alla fine.
fonte: https://forums.aws.amazon.com/thread.jspa?messageID=689700򨘤
Se stai ancora cercando questa risposta in 2018, per favore guarda la risposta di @ geekQ (https://stackoverflow.com/a/40608247/347777), come un vero catch-all (che corrisponde a/a/b/c/d/...) è ora possibile. – Viccari