🏗 Projeto Todo List: API REST com Angular e Spring Boot no Padrão MVC


📌 O que é uma API REST?

Uma API REST (Representational State Transfer) é um conjunto de regras que permite que aplicações se comuniquem pela internet usando o protocolo HTTP. No nosso projeto, o backend em Spring Boot expõe endpoints REST para que o frontend em Angular possa interagir com os dados das tarefas.

⚙️ Características principais de uma API REST:

Stateless (Sem estado): Cada requisição enviada pelo cliente deve conter todas as informações necessárias para ser processada pelo servidor.
Métodos HTTP bem definidos: A API utiliza verbos HTTP para definir a ação que será realizada.
Uso de JSON: Os dados são trocados no formato JSON, que é leve e fácil de manipular.
URL bem definidas: Segue um padrão para facilitar a comunicação e manutenção.


🔄 Principais Métodos HTTP usados na API REST

Método HTTPDescriçãoExemplo na API
GETObtém dados do servidor/api/tasks (Lista todas as tarefas)
POSTCria um novo recurso/api/tasks (Adiciona uma nova tarefa)
PUTAtualiza um recurso existente/api/tasks/1 (Edita a tarefa com ID 1)
DELETERemove um recurso/api/tasks/1 (Deleta a tarefa com ID 1)

🔢 Códigos de Resposta HTTP

Sempre que realizamos uma requisição HTTP, o servidor responde com um código de status, indicando o resultado da operação.

CódigoSignificadoExplicação
200 OKSucessoA requisição foi processada corretamente.
201 CreatedRecurso CriadoUm novo recurso foi adicionado com sucesso.
204 No ContentSem ConteúdoAção foi bem-sucedida, mas sem retorno de dados.
400 Bad RequestRequisição InválidaAlguma informação está incorreta.
404 Not FoundNão EncontradoO recurso solicitado não existe.
500 Internal Server ErrorErro no ServidorAlgo deu errado no servidor.

🎯 Exemplo de Comunicação entre Frontend e Backend

1️⃣ Frontend Angular Faz Requisição para o Backend

O serviço Angular (task.service.ts) envia uma requisição GET para buscar todas as tarefas:

this.http.get<Task[]>('http://localhost:8080/api/tasks')
  .subscribe(response => console.log(response));

2️⃣ Backend Processa e Responde

O Spring Boot recebe a requisição, busca os dados no banco e retorna um JSON:

[
  { "id": 1, "title": "Estudar API REST", "completed": false },
  { "id": 2, "title": "Criar projeto Angular", "completed": true }
]

O código que trata essa requisição no backend:

@GetMapping
public List<Task> getAll() {
    return repository.findAll(); // Retorna todas as tarefas
}

Agora, sua aplicação segue boas práticas REST e está estruturada corretamente no padrão MVC! 🚀


🚀 ricardotecpro.github.io