Как заставить API Gateway не декодировать параметры или CloudSearch ожидать декодированную косую черту?

В настоящее время я интегрирую Amazon CloudSearch с интерфейсным приложением. Из-за известной проблемы CORS я также вынужден использовать шлюз API.

Проблема возникает из-за того, что внешняя библиотека CloudSearch отправляет URL-адрес с параметрами кодирования. Эти параметры принимаются шлюзом API, декодируются и передаются в CloudSearch.

Есть ли способ настроить CloudSearch для приема расшифрованной косой черты? Есть ли способ заставить API-шлюз не декодировать параметр во время пересылки?


person Murilog    schedule 12.05.2016    source источник
comment
Вы когда-нибудь находили решение этого?   -  person john    schedule 04.05.2017


Ответы (1)


Я не могу определить точную проблему, с которой вы столкнулись, без конкретного примера. Я предполагаю, что вы передаете параметр строки запроса в шлюз API, а затем передаете этот параметр в CloudSearch в качестве другого параметра строки запроса.

Вот ожидаемое поведение: Когда вы передаете параметр строки запроса в шлюз API, он сначала декодирует значение параметра. Это будет декодировать любые символы, которые были закодированы в процентах, независимо от того, нужно ли было закодировать исходный символ в процентах, чтобы соответствовать URL RFC. Если параметр передается в качестве параметра строки запроса в конечную точку интеграции, шлюз API будет кодировать URL-адрес значения параметра в процентах, кодируя только те символы, которые не являются допустимыми символами для отображения в значении строки запроса.

Исходя из этого поведения, неясно, как декодированная косая черта передается в CloudFront. Если вы можете привести конкретный пример, я могу продолжить расследование.

person MikeD at AWS    schedule 26.10.2016