Cập nhật: Tính đến tuần trước, API Gateway bây giờ hỗ trợ những gì họ gọi là “biến Path-tất cả Catch”. Xem API Gateway Update – New Features Simplify API Development.
Bạn sẽ cần tạo tài nguyên cho mỗi cấp không may. Lý do cho việc này là API Gateway cho phép bạn truy cập các thông số đó thông qua một đối tượng.
Ví dụ: method.request.path.XXXX
Vì vậy, nếu bạn đã chỉ /{param}
bạn có thể truy cập rằng với: method.request.path.param
nhưng nếu bạn đã có một con đường lồng nhau (params với dấu gạch chéo), nó sẽ không làm việc. Bạn cũng sẽ nhận được 404 cho toàn bộ yêu cầu.
Nếu method.request.path.param
là một mảng thay thế ... thì nó có thể nhận được thông số theo vị trí khi không được đặt tên. Ví dụ: method.request.path.param[]
... Các thông số được đặt tên thậm chí có thể được xử lý ở dưới đó, nhưng việc truy cập chúng sẽ không thực sự dễ dàng. Nó sẽ yêu cầu sử dụng một cái gì đó một số loại ánh xạ đường dẫn JSON (suy nghĩ giống như những gì bạn có thể làm với các mẫu ánh xạ của chúng). Đáng buồn thay, đây không phải là cách nó được xử lý trong API Gateway.
Tôi nghĩ rằng điều đó là tốt bởi vì điều này có thể khiến việc định cấu hình API Gateway trở nên phức tạp hơn. Tuy nhiên, nó cũng hạn chế API Gateway và để xử lý tình huống này, cuối cùng bạn sẽ kết thúc với một cấu hình khó hiểu hơn.
Vì vậy, bạn có thể đi một chặng đường dài ở đây. Tạo cùng một phương thức cho nhiều tài nguyên và thực hiện như sau: /{1}/{2}/{3}/{4}/{5}/{6}/{7}
v.v. Sau đó, bạn có thể xử lý từng mức tham số đường dẫn nếu cần.
Nếu số lượng tham số luôn giống nhau, thì bạn may mắn hơn một chút và chỉ cần thiết lập một loạt tài nguyên, nhưng một phương thức ở cuối.
nguồn: https://forums.aws.amazon.com/thread.jspa?messageID=689700򨘤
Nếu bạn vẫn đang tìm câu trả lời này Năm 2018, hãy nhìn vào câu trả lời của @ geekQ (https://stackoverflow.com/a/40608247/347777), như một sự bắt kịp tất cả (phù hợp với/a/b/c/d/...) bây giờ là có thể. – Viccari