psoft

Material de apoio para aprendizagem de desenvolvimento de APIs REST/backend. Além de conceitos, apresentamos como fazer usando o ecossistema Spring Boot.

View the Project on GitHub raquelvl/psoft

Padrão MVC

Praticamente todas as aplicações Web da atualidade seguem um padrão de projeto chamado MVC - Model, View, Controller. Considere que o backend é a API. Em se tratando de uma aplicação Web monolítica, que é nosso foco aqui, o cliente dessa API é o frontend.

Esse padrão é importante porque mantém desacoplados os códigos do frontend (que é a parte View do padrão) e da API/backend que é a parte Model. Este padrão define claramente as responsabilidades do backend e do frontend:

Agora precisamos de uma cola e permite a comunicação eficiente entre View e Model. Esta cola é o controlador. O controlador orquestra a comunicação entre estas partes. O controlador é desenvolvido pelos desenvolvedores do backend e executa junto da API. O controlador recebe as requisições dos usuários e sabe exatamente para que serviço dentro do servidor delegar esta requisição.

Em resumo:

De forma simplificada, quando uma requisição chega na API ela vai ser processada primeiramente por um controlador, que vai identificar o recurso sendo solicitado, a ação (verbo HTTP), as informações passadas na requisição e vai repassar para o serviço adequado dentro do backend, que irá de fato processar o pedido. Apenas o controlador lida com requisições e respostas HTTP. Os outros componentes do backend (em OO) são de uma aplicação OO normal, objetos que se relacionam para realizar as ações necessárias.

Este padrão de projeto facilita muito a manutenção do código no lado do servidor de backend, pois para cada operação do backend existe um caminho muito específico, então fica fácil identificar onde alterações precisam ser realizadas. Para adicionar novas funcionalidades na API também fica simples, pois será necessário instrumentar o controlador para a nova funcionalidade e informar que serviço (possivelmente código novo) deve ser chamado para executá-la.

Tudo isso vai ficar muito mais claro quando começarmos a meter a mão na massa… Como criar APIs REST que seguem o padrão MVC usando Spring? Esse é o conteúdo desse outro artigo.