Я работаю с поставщиком данных для моего проекта, который, к сожалению, не придерживается каких-либо стандартов, поэтому в заголовке запроса не указан тип содержимого. На самом деле это указано, но с другим ключом, а затем содержимым.Default Content-Type для шаблона сопоставления
Полезная нагрузка запроса POST находится в формате xml, поэтому, насколько я понимаю, нам нужно использовать шаблон сопоставления для переноса полезной нагрузки в объект json. Все это отлично работает, когда мы указываем тип контента как один из установленных типов в разделе «Запрос на интеграцию».
Теперь, насколько я понимаю, если тип содержимого не указан в заголовке запроса, он должен по умолчанию использовать «application/json» и использовать шаблон сопоставления с этим типом. В нашем случае это ведет себя так же, как игнорирует шаблон сопоставления, который, в свою очередь, приводит к следующей ошибке:
{"Тип": "Пользователь", "сообщение": "Не удалось разобрать тело запроса в json."}
Только упоминание, запрос отправляется для обработки на AWS Lambda.
Любые идеи, как мы можем добиться этой работы?
Редактировать: Я подтвердил, что по умолчанию используется «application/json», если Content-Type не задан в заголовке. В этом случае я предполагаю, что я испытываю ошибку.
Если тип содержимого по умолчанию - приложение/json, не следует ли, что шлюз * ожидает * JSON и отклоняет запрос, потому что это не то, что полезная нагрузка? –
Да и нет. Это не влияет на отображение шаблона сопоставления или нет, он просто указывает, какой из них следует вызывать. Необходимо хотя бы вызвать шаблон отображения. Если я явно устанавливаю Content-Type в application/json, вызывается шаблон отображения, а содержимое xml красиво выбривается в объект JSON, и все это хорошо. Проблема в том, что когда этот тип содержимого отсутствует, по умолчанию не вызывается, который должен быть applicaiton/json. Представитель AWS на своем форуме уже подтвердил, что следует назвать дефолт. Похоже, это может быть ошибка в AWS. – LemonMooseTom
По умолчанию 'Content-Type' может быть' '* ''. – kixorz