Spring Boot codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API
Приложение разработано на основе спецификации real-world-app.
- Приложение построено на основе трехслоиной архитектуры (api, services, repository)
- Security построено на основе jwt токенов
- Обработка исключений с помощью @ControllerAdvice
- Таблицы, constraints и внешние ключи генерируются с помощью Jpa
- DTO в качестве классов оберток для api запросов и ответов
Также:
- endpoints and json examples
- api json answer formats
- протестировать работоспособность с помощью официального bash скрипта
- Spring Boot 3.0.0 и Java 17
- Spring Data JPA + Hibernate + H2-database
- Spring Security 6 + jwt
- Logback
- Spring Validation для валидации rest запросов
- Jackson для сериализации и дессериализации запросов и ответов
- JUnit 5 + AssertJ + Mockito для тестирования
- Docker для запуска в контейнере из Dockerfile
Требуется Java 17 или выше
./gradlew bootRun
Для тестирования работоспособности приложения в браузере http://localhost:8080/api/tags.
Или же через команду в терминале
curl http://localhost:8080/api/tags
Для запуска тестов следующая команда
./gradlew test
Процент покрытия строк кода тестами 93%.
Для полного тестирования api на соответствие спецификации протестируйте с помощью официального bash script
cd api-bash-test
Команда для запуска скрипта
APIURL=http://localhost:8080/api ./run-api-tests.sh
Убедитесь что Docker engine запущени командой docker --version
. Если Docker
не установлен, то вот гайд по установке Docker.
Для запуска приложения в докер контейнере в корне проекта запускаем команду для построения докер образа.
docker build -t realworld:v1 .
После построения образа создаем и запускаем контейер с помощью docker run
docker run --name realworld -p 8080:8080 realworld:v1
После этого можно протестировать работоспособность