Ответ
Да, у меня есть несколько проектов, созданных для изучения технологий и отработки навыков на практике.
Пример проекта: REST API для управления задачами (To-Do List)
- Стек: Spring Boot, Spring Security (JWT), Spring Data JPA (Hibernate), PostgreSQL, Docker.
- Ключевая функциональность:
- Аутентификация и авторизация по JWT-токенам.
- CRUD-операции для задач с привязкой к пользователю.
- Валидация входящих данных.
- Документация API с помощью Swagger/OpenAPI.
Фрагмент кода (контроллер):
@RestController
@RequestMapping("/api/tasks")
@RequiredArgsConstructor // Lombok для инъекции зависимости
public class TaskController {
private final TaskService taskService;
@GetMapping
@PreAuthorize("hasRole('USER')") // Защита endpoint'а
public ResponseEntity<List<TaskDto>> getAllUserTasks(
@AuthenticationPrincipal UserDetails userDetails) {
List<TaskDto> tasks = taskService.findAllForUser(userDetails.getUsername());
return ResponseEntity.ok(tasks);
}
@PostMapping
public ResponseEntity<TaskDto> createTask(
@Valid @RequestBody CreateTaskRequest request, // Валидация полей
@AuthenticationPrincipal UserDetails userDetails) {
TaskDto newTask = taskService.create(request, userDetails.getUsername());
return ResponseEntity.status(HttpStatus.CREATED).body(newTask);
}
}
Другие проекты включают:
- Микросервисная архитектура: Простое приложение, разбитое на сервисы (API Gateway, Service Discovery с Eureka, конфигурация).
- Парсер данных: Сервис на Spring Boot + Jsoup для сбора и агрегации информации с веб-сайтов.
- Telegram-бот: Бот для уведомлений или простых взаимодействий, написанный на Java с использованием библиотеки TelegramBots.
Цель проектов: Глубокое понимание жизненного цикла приложения, от проектирования и разработки до развертывания и мониторинга.