Julgue os itens a seguir, acerca de API e REST. I Uma application programming interface (API) define as regras que necessitam ser seguidas para se comunicar com outros sistemas de software, podendo ser utilizada para compartilhar recursos e fornecer serviços da Web. II Na representational state transfer (REST), a ausência de estado refere-se ao método de comunicação, no qual o servidor completa cada solicitação do cliente, independentemente de todas as solicitações anteriores. III Em uma API RESTful o envio da mesma solicitação PUT várias vezes em um serviço da Web RESTful é equivalente a uma única invocação de solicitação. Assinale a opção correta.
- A)Nenhum item está certo.
Errada, porque os itens I, II e III estão corretos.
- B)Apenas o item I está certo.
Errada, porque não só o item I está certo, mas também os itens II e III.
- C)Apenas o item II está certo.
Errada, porque o item I também está correto, e o item III igualmente.
- D)Apenas o item III está certo.
Errada, porque o item III está correto, mas não é o único.
- E)Todos os itens estão certos.
Certa, porque os três itens descrevem corretamente API, statelessness no REST e idempotência do PUT.
Gabarito: E
API é, em termos simples, a “porta de entrada” organizada para um sistema conversar com outro. Ela define regras, formatos e limites dessa comunicação, o que permite integrar aplicações, compartilhar recursos e expor serviços, inclusive na Web. Então o item I está correto ao tratar API como conjunto de regras para comunicação entre softwares. No REST, a ideia central é que a comunicação seja sem estado (stateless). Isso significa que cada requisição do cliente deve conter tudo o que o servidor precisa para respondê-la, sem depender do histórico anterior. Em outras palavras, o servidor não “se lembra” da conversa passada para completar a solicitação atual. É exatamente essa a lógica descrita no item II. Já o item III também está certo porque o método PUT, em REST, é idempotente. Idempotência quer dizer que repetir a mesma requisição várias vezes produz o mesmo efeito de uma única execução, desde que o recurso e os dados enviados sejam os mesmos. A ideia é bem conhecida na doutrina de arquitetura REST, como a formulada por Roy Fielding. Por isso, como os três itens apresentam características corretas de API e REST, a alternativa correta é a que diz que todos os itens estão certos. Em prova CESPE, vale lembrar: API é o conceito mais amplo, REST é um estilo arquitetural, e idempotência + stateless são palavras-chave que quase sempre aparecem nas pegadinhas.