Olá, Concurseiro/a !
Um assunto muito cobrado pelas diversas bancas de concursos para os cargos da área de tecnologia da informação é o padrão REST, envolvendo tanto a arquitetura web como a de dispositivos móveis. Neste artigo vamos explicar um pouco do seu funcionamento e os principais aspectos cobrados pelas bancas.
O HTTP (Hypertext Transfer Protocol) é o protocolo de comunicação para aplicações web e tem seu funcionamento baseado em requisições. Algo que contribuiu para o crescimento da web foi a popularização do REST (Representational State Transfer), que consiste em um conjunto de princípios de arquitetura que, quando seguidas, permite a criação de um projeto com interface bem definidas. Aplicações que utilizam os princípios REST são chamadas de RESTFul. O Padrão REST já é antigo, mas, com a popularização dos dispositivos móveis, ele vem sendo cada dia mais usado.
O REST é frequentemente aplicado para disponibilizar serviços para outras aplicações (web services), e ele utiliza integralmente as mensagens HTTP para se comunicar através do que já é definido no protocolo. Segundo a Stack OverFlow (2017), a linguagem de programação JavaScript é uma das mais populares entre os desenvolvedores. Inicialmente seu uso era voltado apenas para a utilização em navegadores, mas, como já falado, isso mudou bastante nos últimos tempos.
Vamos ver então como é seu funcionamento:
Ao acessar a internet, um determinado usuário utiliza um navegador ou browser como, por exemplo, o Google Chrome, Internet Explorer ou Firefox. O usuário informa um endereço e o navegador faz uma requisição, que é respondida por um servidor. Essa forma de trabalhar em que um cliente faz uma requisição e o servidor responde é chamada de arquitetura cliente-servidor. Para que essa comunicação ocorra, deve haver regras de comunicação, ou seja, um protocolo que estabelece a forma com que o cliente e servidor devem se comunicar. O principal protocolo de internet é o HTTP, que será nosso objeto de estudo. A figura abaixo apresenta como ocorre esse processo.
O protocolo HTTP tem como objetivo distribuir objetos de hipermídia, que são referenciados por uma URL (Uniform Resource Locator) [EMER, 2014]. Por URL podemos entender regras bem definidas para descrever recursos disponíveis na WEB, ou seja, são os endereços utilizados na WEB. Um cliente, para fazer acesso ao servidor, deve informar uma URL. Para organizar a comunicação entre servidor e cliente, o HTTP estabelece cabeçalhos para a requisição do cliente e a resposta do servidor. No cabeçalho da requisição, podemos encontrar informações como, por exemplo, preferência de idiomas, codificação e formato de conteúdo na resposta [EMER, 2014].
Quando um usuário utiliza um navegador informando um determinado endereço, como, por exemplo, http://www.eripi.com.br/2017, é automaticamente feita uma requisição utilizando o método GET do protocolo HTTP. Um método do protocolo HTTP serve para reportar qual é a intenção ou ação desejada a ser executada. Ainda sobre os métodos HTTP, pode-se destacar dois conceitos importantes: (i) idempotentes e (ii) seguro. Temos um método idempotente quando este é chamado n vezes e traz sempre o mesmo resultado. Já o seguro se trata quando o método não altera um recurso disponível no servidor.
REST é um estilo arquitetural para sistemas de hipermídia distribuídos [FIELDING, 2000]. Podemos também dizer que REST é uma abordagem para desenvolvimento de serviços web que busca simplicidade e baixo acoplamento [SALVADORI, 2015]. Como citado anteriormente, o termo RESTFul é utilizado para designar aplicações que implementam os princípios definidos no estilo arquitetural REST. Pode ser utilizado qualquer protocolo para implementar o estilo arquitetural REST, mas, no presente trabalho, o protocolo HTTP será adotado como padrão devido a sua popularidade na Web. Para entender melhor o estilo arquitetural, é importante destacar três conceitos importantes: (i) recurso; (ii) operações e (iii) representações. Recurso é qualquer informação que é disponibilizada para os clientes através de um identificador único (URI). Também podemos conceituar recurso como sendo a fonte de representações – as representações são um conjunto de dados que representam o estado do recurso solicitado [MORO et al., 2011].
As URIs devem possuir um padrão de notação, serem descritivos e possuir uma hierarquia previamente definida [RODRIGUES, 2014]. Um mesmo recurso pode ser identificado por um ou mais URIs, mas uma URI identifica apenas um recurso. Cada recurso pode ter mais de uma representação, sendo que cada recurso deve ter pelo menos uma representação. O HTTP possui operações, e o recomendado é respeitar a semântica e utilizá-las adequadamente, sendo as principais GET, POST, PUT e DELETE. Acontecem casos em que a equipe de desenvolvimento negligencia o uso das operações e acaba utilizando o operador GET para realizar as mais diversas ações, o que acaba não sendo uma boa prática. A representação de um determinado recurso pode ser feita de diversas formas, como, por exemplo, HTML, PDF, JSON ou XML. A figura 2 faz uma representação gráfica envolvendo os conceitos apresentados.
É importante observar que, quando é realizada uma requisição, a resposta deve conter um status ou mensagem. Como estamos tomando por base o protocolo HTTP, deve ser retornado o status code adequado. A figura 15.4 ilustra uma requisição que um determinado dispositivo mobile faz utilizando a operação GET, que solicita o recurso presente no endereço http://www.eripi.com.br/2017/. Logo após a requisição, acontece a resposta do servidor, que contém o status code 200 – que indica que tudo aconteceu como o esperado. Ainda na resposta é informado que a representação do recurso retornada é um HTML. Os status code pertencem ao protocolo HTTP e fornecem uma maneira adequada de categorizar e padronizar as respostas das requisições. Ao se utilizar o estilo arquitetural REST, devem ser usados obrigatoriamente. [SALVADORI, 2014].
Para finalizar, vamos responder uma questão da banca CESPE do concurso do BNB para o Cargo de Analista de Sistemas.
(CESPE/BNB/ANALISTA DE SISTEMA/2018) A arquitetura ilustrada na figura a seguir, a ser executada, por exemplo, por meio de um browser instalado em dispositivos móveis, descreve uma arquitetura MVC (model-view-controller) que pode ser aplicada com a utilização de REST e JavaScript.
Certo ou Errado ??
Resposta: Certo.
Nossas aulas no Gran Cursos Online abordam esses e mais temas da Engenharia de Software. Além disso, temos nossos simulados, nossos artigos aqui no blog, além dos Intensivos e das lives no YouTube. Vamos nessa que a aprovação vem logo!
Bons estudos!
Referências: III Escola Regional de Informática do Piauí. Livro Anais – Artigos e Minicursos, v. 1, n. 1, p. 532-548, jun, 2017. www.eripi.com.br/2017 – ISBN: 978-85-7669-395-6
Washington H. C. Almeida
Mestre em Engenharia de Software no Centro de Estudos e Sistemas Avançados do Recife – C.E.S.A.R. Atualmente é Analista Judiciário na Justiça Federal (TRF1) e Professor. Certificado ISF ISO/IEC 27002. Ocupou a Função de Diretor do Núcleo de Operação de Centros da Dados na Justiça Federal-TRF1. Exerceu o cargo de Coordenador-Geral de Sistemas (DAS 101.4) no Ministério do Planejamento, Orçamento e Gestão – MPOG, servidor público ocupando o cargo de Analista em Tecnologia da Informação – ATI.
Aprovado em diversos concursos para cargos de T.I entre eles:
Agência Espacial Brasileira – Analista em Ciência e Tecnologia. Ministério do Planejamento, Orçamento e Gestão – Analista em Tecnologia da Informação. TRF 1ª Região – Analista Judiciário Especialidade Informática. Dataprev – Analista de Tecnologia da Informação, Codevasf – Analista em Desenvolvimento Regional – Informática. Ministério das Cidades – Analista de Sistemas. TRT 3ª Região – Técnico Judiciário – T.I. Eletrobrás Eletronorte – Analista de Sistemas. Governo do Distrito Federal – Professor Temporário – Informática. Senai – Professor Certificação . Net.
WHATSAPP GCO: receba gratuitamente notícias de concursos! Clique AQUI!
CONCURSOS ABERTOS: veja aqui os editais publicados e garanta a sua vaga!
CONCURSOS 2019: clique aqui e confira as oportunidades para este ano!
Estudando para concursos públicos? Prepare-se com quem mais entende do assunto! Cursos completos 2 em 1, professores especialistas e um banco com mais de 920.000 questões de prova! Garanta já a sua vaga! Mude de vida em 2019!
Estude onde, quando, como quiser e em até 12x sem juros! Teste agora por 30 dias!
[su_button url=”https://www.grancursosonline.com.br/assinatura-ilimitada” target=”blank” style=”flat” background=”#ff0000″ size=”7″ icon=”icon: shopping-cart”]Matricule-se![/su_button]
Parabéns belo trabalho !
Parabéns pelo artigo. Excelente publicação. Precisamos de mais assuntos coesos e coerentes assim.
Excelente material e bem referenciado.
Não tem como errar questão sobre REST depois de ler esse artigo.
Não haverá mais artigos ?
Ótimo artigo! Parabéns pelo material apresentado professor Washington. Como nosso colega Henrique falou, não como errar questão sobre REST depois de ler esse artigo. Artigo sucinto, todavia detalhando somente o que cai de fato na prova.
Artigo bem sucinto com boa didática. Esperamos mais material como esse, parabéns ao Grancursos por liberar material como esse.