У меня есть приложение весенней загрузки с методом GET, как показано ниже. Этот метод имеет входной параметр в виде строки, который сопоставляется с переменной пути {userId}.
@GetMapping("/users/{userId}")
public String get(@PathVariable ("userId") String userId) {
return userId;
}
Я создал лямбда-функцию AWS и загрузил JAR для весенней загрузки. Я могу проверить лямбда-функцию с тестовым событием после передачи строкового примера "userId1". Лямбда-функция работала нормально.
Использование API-шлюза, созданного API, определенного ресурса и метода GET. URL выглядит следующим образом:
/users/{userId} - GET - Integration Request
Кроме того, следуйте приведенным ниже инструкциям для определения шаблонов отображения.
- Открыты параметры запроса на интеграцию, а затем шаблоны сопоставления тела.
- Выбран параметр: если шаблоны не определены (рекомендуется)
- Добавлен шаблон сопоставления для: application / json
Добавлен следующий шаблон для сопоставления userId с входом Lambda
{
"userId": "$ input.params ('userId')"
}
Когда я тестирую мой API, он дает мне исключение ниже. Я не уверен, как мне определить Mapping Templates, чтобы он принимал только String, а не JSON. Потому что моя лямбда-функция и соответствующий реализованный метод принимает только строку. Заранее спасибо за помощь.
{
"errorMessage": "An error occurred during JSON parsing",
"errorType": "java.lang.RuntimeException",
"stackTrace": [],
"cause": {
"errorMessage": "com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token\n at [Source: lambdainternal.util.NativeMemoryAsInputStream@69b2283a; line: 1, column: 1]",
"errorType": "java.io.UncheckedIOException",
"stackTrace": [],
"cause": {
"errorMessage": "Can not deserialize instance of java.lang.String out of START_OBJECT token\n at [Source: lambdainternal.util.NativeMemoryAsInputStream@69b2283a; line: 1, column: 1]",
"errorType": "com.fasterxml.jackson.databind.JsonMappingException",
"stackTrace": [
"com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)",
"com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:857)",
"com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:62)",
"com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)",
"com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1511)",
"com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1102)"
]
}
}
}