Padrão arquitetural REST
Gabarito: letra C. O enunciado descreve exatamente o padrão REST (Representational State Transfer), que é um estilo arquitetural para sistemas distribuídos que enfatiza simplicidade, escalabilidade e separação clara entre cliente e servidor. REST utiliza o protocolo HTTP de forma stateless, onde o cliente gerencia a apresentação e o servidor a lógica de negócios e os dados.
A banca cobra a diferença entre padrões de comunicação e padrões de interface. REST é o único que se encaixa perfeitamente na descrição de "simplicidade e escalabilidade na comunicação entre cliente e servidor" e "separação clara de responsabilidades".
Característica | REST | SOAP | MVC | GraphQL |
|---|
Foco principal | Simplicidade e escalabilidade na comunicação cliente-servidor | Protocolo formal com contratos rígidos (WSDL) | Organização interna da interface do usuário | Flexibilidade de consultas de dados |
Tipo de padrão | Estilo arquitetural para sistemas distribuídos | Protocolo de comunicação baseado em XML | Padrão de arquitetura de software (UI) | Linguagem de consulta para APIs |
Separação de responsabilidades | Clara: cliente (apresentação) vs. servidor (lógica de negócios/dados) | Não enfatiza separação cliente-servidor | Separa modelo, visão e controle (internamente) | Não é o foco principal |
Comunicação cliente-servidor | Stateless, via verbos HTTP e URIs | Complexa, baseada em XML | Não é um padrão de comunicação | Eficiente, mas não prioriza simplicidade estrutural |
Alternativa A — ❌ Incorreta
SOAP (Simple Object Access Protocol) é um protocolo de comunicação baseado em XML, mais complexo e pesado. Ele não é conhecido por simplicidade e escalabilidade como principal característica, e sim por ser um padrão formal com contratos rígidos (WSDL). A descrição do enunciado não se aplica.
Alternativa B — ❌ Incorreta
MVC (Model-View-Controller) é um padrão de arquitetura de software para organizar a interface do usuário, separando modelo de dados, apresentação e controle. Embora separe responsabilidades, ele não é um padrão de comunicação cliente-servidor; é voltado para a estrutura interna de uma aplicação.
Alternativa C — ✅ Correta ⟵ GABARITO
REST é um estilo arquitetural que atende exatamente aos requisitos: simplicidade (uso de verbos HTTP, URIs), escalabilidade (stateless, cache) e separação clara entre cliente (que cuida da apresentação) e servidor (que cuida da lógica de negócios e dados). É o padrão mais utilizado para APIs web modernas.
Alternativa D — ❌ Incorreta
GraphQL é uma linguagem de consulta para APIs, que permite ao cliente solicitar exatamente os dados que precisa. Embora seja eficiente para transferência de dados, não é um padrão arquitetural que enfatiza a separação entre apresentação e lógica de negócios na mesma medida que REST; seu foco é flexibilidade de consultas, e não a simplicidade estrutural.