Я хочу создать CRUD API с использованием Micronaut и развернуть его на AWS Lambda, демонстрируя различные методы с помощью Amazon API Gateway.Я мог бы создавать разные проекты Kotlin для каждой конечной точки (GET, POST ...), один из которых включал бы одну функцию, но это довольно обременительно, поэтому я бы предпочел иметь один проект со всеми функциями CRUD.
Мой текущийПриложение содержит две функции: один поставщик (GET) и один потребитель (POST).
Приложение:
object Application {
@JvmStatic
fun main(args: Array<String>) {
Micronaut.build()
.packages("micronaut.aws.poc")
.mainClass(Application.javaClass)
.start()
}
}
Поставщик:
@FunctionBean("micronaut-aws-poc")
class MicronautAwsPocFunction : Supplier<String> {
override fun get(): String {
println("GET")
return "micronaut-aws-poc"
}
}
Потребитель:
@FunctionBean("micronaut-aws-poc-post")
class MicronautAwsPocPostFunction : Consumer<String> {
override fun accept(t: String) {
println("POST $t")
}
}
Затем я создал ресурс в Amazon API Gateway с одним методом GET и одним методом POST.Проблема заключается в том, что независимо от того, какой из них я вызываю, всегда вызывается функция MicronautAwsPocFunction.
- Можно ли / рекомендуется встраивать множество функций в одну банку?
- Как сделатьВызовы POST вызывают функцию MicronautAwsPocPostFunction вместо функции MicronautAwsPocFunction?
- Если мне нужна дополнительная функция PUT, как я могу ее смоделировать?