Update: Wie in der vergangenen Woche, jetzt API-Gateway unterstützt, was sie „Catch-all Pfadvariablen“ nennen. Siehe API Gateway Update – New Features Simplify API Development.
Sie müssen leider eine Ressource für jede Ebene erstellen. Der Grund hierfür ist, dass Sie mit API Gateway über ein Objekt auf diese Parameter zugreifen können.
Zum Beispiel: method.request.path.XXXX
Also, wenn Sie haben gerade /{param}
Sie, dass mit zugreifen können: method.request.path.param
aber wenn Sie einen verschachtelten Pfad (params mit Schrägstrichen) haben, würde es nicht funktionieren. Sie erhalten auch einen 404 für die gesamte Anfrage.
Wenn ein Array statt ... wäre, dann könnte es params nach Position, wenn nicht benannt. Zum Beispiel method.request.path.param[]
... Named Params könnte sogar unter dort gehandhabt werden, aber auf sie zuzugreifen wäre nicht wirklich einfach. Es müsste etwas JSON-Pfad-Mapping verwendet werden (denken Sie daran, was Sie mit ihren Mapping-Templates machen können). Leider wird dies nicht in API Gateway gehandhabt.
Ich denke, es ist in Ordnung, obwohl dies die Konfiguration von API Gateway noch komplexer machen könnte. Es beschränkt jedoch auch das API-Gateway und um mit dieser Situation fertig zu werden, wird es letztendlich zu einer verwirrenderen Konfiguration kommen.
So können Sie den langen Weg hier gehen. Erstellen Sie die gleiche Methode für mehrere Ressourcen und tun Sie etwas wie: /{1}/{2}/{3}/{4}/{5}/{6}/{7}
und so weiter. Dann können Sie bei Bedarf jede Pfadparameterebene behandeln.
Wenn die Anzahl der Parameter immer gleich ist, dann sind Sie ein bisschen glücklicher und müssen nur eine Reihe von Ressourcen einrichten, aber eine Methode am Ende.
Quelle: https://forums.aws.amazon.com/thread.jspa?messageID=689700򨘤
Wenn Sie immer noch auf der Suche nach dieser Antwort in 2018, schaut euch bitte @ geekQs Antwort an (https://stackoverflow.com/a/40608247/347777), da nun ein echter Catch-All (der zu/a/b/c/d/... passt) möglich ist. – Viccari