Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kora-projects/kora-kotlin-crud-template
Kora Kotlin CRUD service template
https://github.com/kora-projects/kora-kotlin-crud-template
application-template jvm kora kotlin microservice service-template template
Last synced: 18 days ago
JSON representation
Kora Kotlin CRUD service template
- Host: GitHub
- URL: https://github.com/kora-projects/kora-kotlin-crud-template
- Owner: kora-projects
- License: apache-2.0
- Created: 2024-09-23T08:40:55.000Z (about 2 months ago)
- Default Branch: master
- Last Pushed: 2024-10-27T17:22:56.000Z (19 days ago)
- Last Synced: 2024-10-27T17:58:22.964Z (19 days ago)
- Topics: application-template, jvm, kora, kotlin, microservice, service-template, template
- Language: Kotlin
- Homepage: https://kora-projects.github.io/kora-docs
- Size: 88.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![GitHub Action](https://github.com/kora-projects/kora-kotlin-crud-template/workflows/Build%20Master/badge.svg)](https://github.com/kora-projects/kora-kotlin-crud-template/actions?query=workflow%3A%22Build%20Master%22++)
# Шаблон приложения Kora Kotlin CRUD
Шаблон для быстрого старта нового проекта на Kotlin и Kora с базовым настроенным HTTP [CRUD](https://github.com/swagger-api/swagger-petstore) API для одной сущности.
В качестве базы данных выступает Postgres, используется кэш Caffeine,
а также другие модули которые использовались бы в реальном приложении в бою.В шаблоне используются модули:
- [HTTP сервер](https://kora-projects.github.io/kora-docs/ru/documentation/http-server/)
- [OpenAPI HTTP серверная генерация](https://kora-projects.github.io/kora-docs/ru/documentation/openapi-codegen/)
- [Пробы](https://kora-projects.github.io/kora-docs/ru/documentation/probes/)
- [Метрики](https://kora-projects.github.io/kora-docs/ru/documentation/metrics/)
- [JDBC база данных](https://kora-projects.github.io/kora-docs/ru/documentation/database-jdbc/)
- [JSON конвертация](https://kora-projects.github.io/kora-docs/ru/documentation/json/)
- [Отказоусточивость](https://kora-projects.github.io/kora-docs/ru/documentation/resilient/)
- [Валидация](https://kora-projects.github.io/kora-docs/ru/documentation/validation/)
- [Caffeine кеш](https://kora-projects.github.io/kora-docs/ru/documentation/cache/#caffeine)## Build
Собрать классы (может потребоваться запустить 2 раза из-за Kotlin APT & KSP):
```shell
./gradlew classes
```Собрать артефакт:
```shell
./gradlew distTar
```### Generate
Сгенерировать API для HTTP Server:
```shell
./gradlew openApiGenerateHttpServer
```### Image
Собрать образ приложения:
```shell
docker build -t kora-kotlin-crud .
```## Run
Запустить локально:
```shell
./gradlew run
```## Migration
Миграции вызываются с помощью Flyway Gradle Plugin:
```shell
./gradlew flywayMigrate
```## Test
Тесты используют [Testcontainers](https://java.testcontainers.org/), требуется [Docker](https://docs.docker.com/engine/install/) окружение для запуска тестов или аналогичные контейнерные окружения ([colima](https://github.com/abiosoft/colima) / итп)
Протестировать локально:
```shell
./gradlew test
```