Многомодульный проект на Kotlin с использованием Ktor, демонстрирующий создание бэкенда для фронтенда (BFF) с интеграцией внешних API.
-
Многомодульная архитектура
core
- базовые компоненты и репозиторииservices
- сервисные слои приложенияmobile
- модуль для мобильного приложенияweb
- модуль для веб-приложения с интеграцией внешнего API
-
Интеграция с внешним API
- Реализован клиент для работы с API Cat Facts
- Использование Ktor Client для HTTP-запросов
- Сериализация/десериализация JSON с помощью kotlinx.serialization
-
Тестирование
- Модульные тесты для клиента внешнего API с использованием MockEngine
- Интеграционные тесты для эндпоинтов с использованием Ktor Test
- Использование Mockito для мокирования зависимостей
- Использование Koin для внедрения зависимостей в тестах
-
CI/CD
- Настроен GitLab CI/CD пайплайн
- Этапы сборки и тестирования
- Кэширование зависимостей для ускорения сборки
- Артефакты сборки и отчеты о тестировании
-
Документация API
- Интеграция Swagger UI для документирования API
- OpenAPI спецификация в YAML формате
- Доступ к документации через эндпоинт
/swagger
- Язык программирования: Kotlin 1.9.22
- Фреймворк: Ktor 2.3.7
- Внедрение зависимостей: Koin 3.5.3
- Сериализация: kotlinx.serialization 1.6.2
- Логирование: Logback
- Тестирование: JUnit 5, Kotest, Mockito
- Сборка: Gradle 8.5
- Документация API: Swagger/OpenAPI 3.0