Мидлвари
Мидлварь - это код, который активируется при каждом событии, полученном от API Алисы.
Теория
Мидлвари — это повторно используемое программное обеспечение, которое использует шаблоны и платформы для устранения разрыва между функциональными требованиями приложений и базовыми операционными системами, стеками сетевых протоколов и базами данных
Есть два типа Мидлвари
- Внешняя (outer) область - вызывается перед обработкой фильтров
- Внутренняя (inner) область - вызывается после обработки фильтров, но перед обработчиком
Важно
Мидлварь должен всегда возвращать null
чтобы передать событие следующему мидлварю/хэндлеру.
Если вы хотите завершить обработку события, вы должны вернуть MessageResponse
Практика
fun main() {
skill {
webhookServer = ktorWebhookServer {
port = 8080
path = "/alice"
}
dispatch {
outerMiddleware {
if (!isValidFor(Filter.Authorized))
return@outerMiddleware response {
text = "Для использование необходимо войти в аккаунт Яндекс."
}
null
}
}
}.run()
}
В этом примере показано, как использовать внешнюю мидлварь, чтобы проверять, есть ли у пользователя аккаунт в Яндексе. Если аккаунта нет, мидлварь возвращает ответ с сообщением "Для использование необходимо войти в аккаунт Яндекс". В противном случае, мидлварь возвращает null, позволяя передать событие следующему мидлварю или обработчику.