я бы разделил сущности - есть 1) маппинги, 2) хэндлеры, 3) бизнес-логика.
Конкретно в твоем этом случае могло бы быть так:
1) метод GetRoutes и передача их в инстанс API
2) сервис, который наружу отдает хэндлеры, а сам дергает бизнес-логику из интерфейса с имплементацией
3) реализация отправки мыла с интерфейсом MailSender, которую можно в тестах легко подменить на мок, тестируя в итоге отдельно сервис, а отдельно маппинги в юнит-тестах, без всякой нужды в развесистых интеграционных