2015-09-10 18 views
7

Tôi dường như không thể tìm ra cách tạo tham số chuỗi truy vấn tùy chọn bằng cách sử dụng mẫu ánh xạ trong Yêu cầu tích hợp của tài nguyên của tôi.Cổng API AWS: Làm cách nào để tạo tham số truy vấn tùy chọn trong mẫu ánh xạ?

mẫu của tôi trông như thế này:

{ "limit": "$input.params('limit')", "post_date":"$input.params('post_date')" } 

Tôi muốn 'giới hạn' & 'POST_DATE' là không bắt buộc. Bản mẫu này sẽ tạo ra một chuỗi truy vấn mà trông như thế này khi các thông số không được cung cấp:

/myresource?limit=undefined& 

Khi tôi đang mong đợi:

/myresource 

Các Docs dường như không để trang trải này. Tôi đã tìm thấy một số mẫu ví dụ trong tài liệu sử dụng cú pháp giống như bash để cung cấp chức năng có điều kiện. Tôi đã thử nghiệm những điều sau đây nhưng nó sẽ KHÔNG xác nhận trong bảng điều khiển AWS:

 #set($limit = $input.path('limit')) 
     { 
      #if($limit)"limit": "$input.params('limit')",#end 
     } 

Tôi có đi đúng hướng không?

Cảm ơn!

+2

Tôi nghĩ bạn nên xác định tất cả các thông số có thể và sau đó xử lý 'undefined' trong backend của bạn. – kixorz

+0

Bạn có đang sử dụng 'Lambda' làm phụ trợ không? – kixorz

+0

@napalm Đó là những gì tôi hiện đang làm bây giờ. Thực sự AWS ?! Đó là lame. Lambda -> Có – Nick

Trả lời

3

Có, bạn hoàn toàn có thể thực hiện việc này trong Cổng Api; mặc dù nó dường như không được tài liệu tốt!

Trong câu hỏi của bạn, bạn đã đề cập rằng đây là thông số; nhưng bạn đã sử dụng input.path, thường sẽ tham chiếu đến một phần tử trong phần thân của yêu cầu POST. Các công việc sau đây sẽ hoạt động:

#set($limit = $input.params('limit')) 
{ 
#if($limit && $limit.length() != 0) 
"limit": "$input.params('limit')" 
#end 
} 

Về mặt tài liệu, tôi thấy trang sau từ AWS thực sự khá hữu ích. Nó giấu đi trong một phần về thiết bị đầu cuối giả, mặc dù:

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-mock-integration.html

Các vấn đề liên quan