... | @@ -2,6 +2,12 @@ |
... | @@ -2,6 +2,12 @@ |
|
|
|
|
|
Esta página visa apresentar os padrões a serem utilizados no desenvolvimento de código do repositório do **Backend** da aplicação.
|
|
Esta página visa apresentar os padrões a serem utilizados no desenvolvimento de código do repositório do **Backend** da aplicação.
|
|
|
|
|
|
|
|
## Sumário
|
|
|
|
|
|
|
|
1. [Swagger](#swagger)
|
|
|
|
2. [📌 DTOs](#-dtos)
|
|
|
|
3. [Estrutura de Exceções](#estrutura-de-exce%C3%A7%C3%B5es)
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
## Swagger
|
|
## Swagger
|
... | @@ -46,3 +52,54 @@ public ResponseEntity<UsuarioDTO> salvar(@RequestBody @Valid UsuarioDTO usuarioD |
... | @@ -46,3 +52,54 @@ public ResponseEntity<UsuarioDTO> salvar(@RequestBody @Valid UsuarioDTO usuarioD |
|
return ResponseEntity.ok(service.salvar(usuarioDTO));
|
|
return ResponseEntity.ok(service.salvar(usuarioDTO));
|
|
}
|
|
}
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Estrutura de Exceções
|
|
|
|
|
|
|
|
- **`exception/HttpException.java`** → classe base
|
|
|
|
- **`exception/NotFoundException.java`** → exemplo de exceção específica
|
|
|
|
- **`config/GlobalExceptionHandler.java`** → handler global
|
|
|
|
|
|
|
|
---
|
|
|
|
Handler Global: ``GlobalExceptionHandler``
|
|
|
|
- O handler global (GlobalExceptionHandler) captura todas as exceções e retorna respostas padronizadas:
|
|
|
|
- HttpException → retorna a mensagem e o status HTTP definido na exceção
|
|
|
|
- Exception → erros genéricos retornam 500 com mensagem padrão
|
|
|
|
- MethodArgumentNotValidException → validação de DTOs retorna 400 BAD_REQUEST com detalhes de cada campo
|
|
|
|
- IllegalArgumentException → retorna 400 BAD_REQUEST com mensagem da exceção
|
|
|
|
|
|
|
|
## 1. Criando Exceções
|
|
|
|
|
|
|
|
Todas as exceções personalizadas devem estender `HttpException`.
|
|
|
|
|
|
|
|
```java
|
|
|
|
public class NotFoundException extends HttpException {
|
|
|
|
public NotFoundException(String message) {
|
|
|
|
super(message, HttpStatus.NOT_FOUND);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
```java
|
|
|
|
@GetMapping("/usuarios/{id}")
|
|
|
|
public Usuario getUsuario(@PathVariable Long id) {
|
|
|
|
return usuarioRepository.findById(id)
|
|
|
|
.orElseThrow(() -> new NotFoundException("Usuário não encontrado"));
|
|
|
|
}
|
|
|
|
```
|
|
|
|
Retorno :
|
|
|
|
```java
|
|
|
|
|
|
|
|
{
|
|
|
|
"message": "Usuário não encontrado",
|
|
|
|
"status": "NOT_FOUND"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Boas Práticas de Exceções
|
|
|
|
|
|
|
|
- Sempre criar exceções específicas estendendo `HttpException`.
|
|
|
|
- Usar mensagens claras e descritivas.
|
|
|
|
- Não lançar `RuntimeException` direto; use suas exceções customizadas.
|
|
|
|
- Validações de DTO são tratadas automaticamente (`@Valid`).
|
|
|
|
- Não manipular a resposta JSON de erro manualmente; o handler global cuida disso. |
|
|
|
\ No newline at end of file |