Ed
há 3 dias
Para analisar as alternativas sobre a arquitetura Model-View-Controller (MVC) aplicada a uma API RESTful, vamos considerar as responsabilidades de cada componente: - Model: deve lidar com a lógica de negócio e o acesso ao banco de dados. - View: deve ser responsável pela apresentação dos dados, que no caso de uma API RESTful, geralmente é em formato JSON. - Controller: deve processar as requisições, orquestrar a interação entre o Model e a View, e decidir qual representação (View) deve ser retornada. Agora, vamos analisar as alternativas: A) O componente Model lida com a lógica de negócio e acesso ao banco de dados, a View retorna dados em JSON diretamente do Model, e o Controller apenas roteia as requisições. - Análise: O Controller não deve ser apenas um roteador; ele deve orquestrar a interação entre Model e View. B) O componente Model contém a lógica de negócio e persistência de dados, o Controller processa as requisições, orquestra a interação com o Model e seleciona a representação da View (JSON), delegando a formatação para uma biblioteca específica. - Análise: Esta opção descreve corretamente as responsabilidades de cada componente no padrão MVC. C) O componente Model é responsável apenas pela estrutura dos dados, a View gera o JSON de resposta e a lógica de negócio reside no Controller, que acessa o banco de dados diretamente. - Análise: Isso não é uma boa prática, pois a lógica de negócio deve estar no Model. D) O componente View é responsável pela lógica de negócio, o Model apenas armazena dados e o Controller transforma as requisições em formatos compatíveis com a View. - Análise: Isso inverte as responsabilidades e não segue o padrão MVC. E) O componente Controller acessa o banco de dados, processa a requisição e retorna dados brutos diretamente ao cliente; o Model e a View são desnecessários nesse cenário. - Análise: Isso não segue o padrão MVC, pois elimina a separação de responsabilidades. A alternativa que melhor representa a aplicação do padrão MVC nesse contexto, considerando a otimização para performance e manutenabilidade, é: B.