Considere uma necessidade do Ipea de construir uma API que ...
Considerando o contexto apresentado, qual deverá ser o modelo de API utilizado?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E - RESTful
A alternativa correta é a RESTful, que se refere a um estilo arquitetural de APIs para web services que seguem as diretrizes REST (Representational State Transfer). Este modelo é projetado para tirar proveito dos protocolos e normas da web, como o HTTP, e foca em recursos e suas representações, proporcionando uma abordagem padronizada para a criação de serviços web. As APIs RESTful utilizam métodos HTTP como GET, POST, PUT e DELETE para realizar operações CRUD (Create, Read, Update, Delete) sobre os recursos.
Para compreender a questão, é necessário saber que REST é um conjunto de princípios que define como recursos na web devem ser formatados e transmitidos. Uma API que segue esses princípios é dita "RESTful". Isso garante uma maior interoperabilidade e escalabilidade, e é frequentemente escolhido por sua simplicidade e eficiência na comunicação entre sistemas distintos, como o sistema de cadastro de usuários internos e o sistema de funcionários terceirizados mencionados no contexto da questão.
As outras alternativas apresentadas não são adequadas para o contexto descrito:
- MVC (Model-View-Controller) é um padrão de arquitetura de software que separa a representação da informação do usuário da interação do usuário com ela, e não um modelo de API.
- Zope é um sistema de gerenciamento de conteúdo de código aberto para a construção de aplicações web complexas, não um estilo arquitetural de API.
- Groovy é uma linguagem de programação que roda na JVM (Java Virtual Machine), e não se refere a um modelo de API.
- Laravel é um framework de aplicações web em PHP que segue o padrão MVC, mas por si só não define um estilo de API.
O uso de uma API RESTful facilita a comunicação entre sistemas distintos ao usar um protocolo conhecido e amplamente suportado como o HTTP e ao permitir um design intuitivo através do uso de recursos e ações bem definidas. Sua escolha no contexto da questão apresentada é justificada pela necessidade de segurança e confiabilidade, além da integração entre sistemas heterogêneos.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Dado o contexto apresentado, a opção mais apropriada seria:
E) RESTful
O modelo RESTful é uma abordagem comum para o desenvolvimento de APIs baseadas em REST, que é adequada para a construção de interfaces entre sistemas distribuídos, como o caso mencionado.
Os sistemas compatíveis com REST, geralmente chamados de sistemas RESTful, são caracterizados pela falta de estado e por separar as responsabilidades do cliente e do servidor;
As outras alternativas:
MVC - O MVC sugere uma maneira para você pensar na divisão de responsabilidades, principalmente dentro de um software web. O princípio básico do MVC é a divisão da aplicação em três camadas: a camada de interação do usuário (view), a camada de manipulação dos dados (model) e a camada de controle (controller)
Zope - Zope é um servidor de aplicações web de código aberto escrito na linguagem Python. Seu nome significa "Z Object Publishing Environment" (em português, "Ambiente de Publicação de Objetos Z"). Muitas tarefas de administração de um servidor Zope podem ser realizadas através de uma interface web. Os objetos que o Zope publica na Web são escritos em linguagem Python e tipicamente armazenados num banco de dados orientado a objetos, o ZODB, que é integrado ao sistema. Objetos básicos tais como documentos, imagens e modelos de páginas podem ser criados ou modificados via web. Objetos especializados, tais como wikis, blogs e galerias de fotos estão disponíveis como componentes adicionais (chamados products).
Groovy - Groovy é uma linguagem de programação orientada a objetos desenvolvida para a plataforma Java como alternativa à linguagem de programação Java. Groovy possui características de Python, Ruby e Smalltalk. Groovy utiliza uma sintaxe similar à de Java, é compilada dinamicamente para bytecode Java, e integra-se transparentemente com outros códigos e bibliotecas Java.
Laravel - Laravel é um Framework PHP utilizado para o desenvolvimento web, que utiliza a arquitetura MVC e tem como principal característica ajudar a desenvolver aplicações seguras e performáticas de forma rápida, com código limpo e simples, já que ele incentiva o uso de boas práticas de programação e utiliza o padrão PSR-2 como guia para estilo de escrita do código.
RESTful - A API RESTful é uma interface que dois sistemas de computador usam para trocar informações de forma segura pela internet. A maioria das aplicações de negócios precisa se comunicar com outras aplicações internas e de terceiros para executar várias tarefas.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo