Skip to content

XD-cods/CircleDevs-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ТЗ

Выберите произвольную предметную область. Для нее создайте Restful API.

Обратите внимание, что контролеры не должны работать с сущностями ORM, только с DTO.

Между уровнем контролеров и сервисов поместите уровень фасадов. Методы фасадов принимают и возвращают только DTO или простые классы типа String (ни в коем случае не ORM сущности). Внутри фасадов используются сервисы. Фасады нужны, в т. ч. чтобы упростить интерфейс взаимодействия для контроллеров. Внутри их методов можно вызывать несколько сервисов.

В контроллеры не инжектировать сервисы, а только фасады.

Сущности возвращаются сервисным уровнем. На сервисном же уровне находится бизнес логика. Методы у сервисов не делайте большими, чтобы их легко было переиспользовать.

Много сущностей и эндпоинтов не создавайте. Ограничьтесь например 3 сущностями. Покажите качество кода, а не его количество. Также примените различные технологии и подходы. Покажите целесообразное применение паттернов, различных аннотаций ORM, аутентификацию и прочее.

Обязательные требования:

  • Протестировать веб сервисы с помощью Rest Assured. Опциональные требования:
  • аутентификация
  • задеплоить проект на внешний сервер с доступом через интернет Деплоить на сервер для доступа в интернет необязательно ввиду отсутствия бесплатного хостинга для Джава.

Stack:

  • Java 17
  • любая SQL DB
  • Hibernate или Spring Data
  • Spring Boot
  • Rest Assured

Некоторые частые ошибки, когда задание не сдано:

  • нет уровня фасадов
  • в контроллере есть хотя бы один java импорт сервиса, репозитория (DAO) или сущности
  • хотя бы один метод фасада возвращает или принимает сущность.
  • если код конвертации из сущности в DTO (или наоборот) происходит внутри метода фасада. Конвертацию нужно вынести в отдельный компонент Маппер, чтобы можно было переиспользовать.
  • если встречаются JSON аннотации в сущностях. Такие аннотации должны быть в DTO.
  • в сервисах импортируются DTO. DTO должны быть выше уровня сервисов, то есть начиная с фасадов.
  • мапперы для конвертации сущностей в DTO не должны быть на уровне сервисов.
  • сервисы и фасады написаны просто классами, без интерфейсов. Нужно использовать интерфейсы, инжектировать в другие компоненты их, а не классы.
  • есть неиспользуемые импорты в классах

Перед запуском и тестами

Установите postgreSQL и добавьте данные в src/main/resources/application.properties.

spring.datasource.url= your JDBC URI
spring.datasource.password= your password
spring.datasource.username= your usename

Выполните скрипт создания таблиц расположенный в папке sripts create_db.sql и можете выполнить 2 скрипт для создания тестовых данных create_data.sql

Тестирование

выполните команду

./mvnw test

Запуск приложения

выполните команду

./mvnw spring-boot:run

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages