API Gateway автоматически проверяет модель ввода?

Я создал простой API в шлюзе API AWS со следующей конечной точкой:

POST /v1/users

В запросе выполнения метода/методе я добавил модель запроса:

введите описание изображения здесь

Эта модельная схема выглядит следующим образом:

введите описание изображения здесь

Однако, когда я делаю запрос к этой конечной точке с помощью json body { "foo": "bar" }, он не отклоняет ее и не выполняет мою лямбда-функцию...

Итак, почему существует возможность определить схему JSON, если она не используется для проверки запросов?

Ответы

Ответ 1

Просто пытаясь понять это сам, и я вижу, что вы только что попросили это несколько часов назад!

Пока единственная ссылка, которую я нашел, находится здесь:

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html

Для типов методов, отличных от GET, разверните Модели запросов и для типа содержимого и имени модели введите тип содержимого и выберите имя модели, которая преобразует данные, предоставленные вызывающим абонентом, в ожидаемый формат.

Похоже, что это больше для преобразования, чем валидация, но не особо ясно, как это работает.

UPDATE

Я только что заметил эту ветку HackerNews:

https://news.ycombinator.com/item?id=9880683

Один из инженеров AWS ответил там и сказал:

Модели не требуются для проверки. Они просто используются для генерации объектов в клиентских SDK.

Ответ 3

В любом случае подтверждение ввода/модели на шлюзе API должно рассматриваться только как дополнительный уровень защиты с точки зрения безопасности.

Ваш сервис ДОЛЖЕН всегда проверять входы/модели, это не что-то вы можете делегировать!