Рекомендуемый способ обработки параметров REST в облачной функции Spring

Мне очень нравится, как облачная функция Spring отделяет бизнес-логику от цели среды выполнения (локальной или облачной) и упрощает интеграцию с бессерверными поставщиками.

Я планирую использовать SCF с AWS Lambda за шлюзом API для проектирования серверной части системы.

Однако я не совсем понимаю, как рекомендуется обрабатывать параметры, связанные с REST, такие как параметры запроса, заголовки, путь и т. д. внутри облачных функций Spring. В соответствии с нашим первоначальным анализом мы могли бы вывести два возможных подхода:

  1. При включении «интеграции лямбда-прокси» в API Gateway параметры запроса и другая информация доступны в виде заголовков сообщений внутри SCF.
  2. Мы можем использовать «шаблоны сопоставления» в API Gateway, чтобы сопоставить всю необходимую информацию с телом JSON и десериализовать как POJO, чтобы вводить данные непосредственно в SCF. Таким образом, SCF не нужно беспокоиться о том, как необходимые данные передаются в API.

Каков рекомендуемый способ достижения этого? Упускаем ли мы что-то, что позволяет сделать это лучше?


person Saikat Gupta    schedule 01.09.2020    source источник
comment
Привет, Сайкат, я на той же лодке, и мне интересно, удалось ли вам создать REST API с помощью SCF, и было бы очень полезно, если бы у вас был справочный репозиторий/статья для реализации этого подхода.   -  person Rakesh Mothukuri    schedule 19.03.2021
comment
@RakeshMothukuri Я не нашел подходящей статьи. Но я реализовал то, что предложил Дэйв Сайер в качестве ответа. Работает довольно хорошо.   -  person Saikat Gupta    schedule 19.03.2021
comment
Я вижу, не беспокойтесь. Спасибо :)   -  person Rakesh Mothukuri    schedule 20.03.2021


Ответы (1)


Я не думаю, что вы что-то упускаете из виду, за исключением, возможно, того, что вам также может быть удобно работать с составными функциями, например. marshal|transform, где marshal — это Function<Message<?>, ?>, а transform — бизнес-логика. Функция marshal может быть общей (и преобразовываться в какую-то каноническую форму) и предоставляться как автоконфигурация в разделяемой библиотеке (например).

person Dave Syer    schedule 01.09.2020