Ответ
На последней позиции в качестве Backend-разработчика на Spring Boot я занимался следующими задачами:
- Разработка REST API для банковского приложения.
- Реализация безопасности: JWT-аутентификация и авторизация с помощью Spring Security.
- Работа с данными: Оптимизация сложных SQL-запросов к PostgreSQL и настройка индексов.
- Интеграции: Подключение внешних платежных шлюзов и систем.
- Тестирование: Написание модульных и интеграционных тестов с использованием JUnit 5 и Mockito.
- Поддержка инфраструктуры: Участие в рефакторинге legacy-кода, настройке пайплайна CI/CD в Jenkins и разработке асинхронного микросервиса для уведомлений на основе Kafka.
Пример кода (Endpoint для проверки баланса):
@RestController
@RequestMapping("/api/accounts")
public class AccountController {
@GetMapping("/{id}/balance")
@PreAuthorize("hasRole('USER')")
public ResponseEntity<BigDecimal> getBalance(
@PathVariable Long id,
@AuthenticationPrincipal UserDetails user) {
// Проверка прав доступа
if (!accountService.isOwner(id, user.getUsername())) {
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
}
return ResponseEntity.ok(accountService.getBalance(id));
}
}