O que é REST?
Vários amigos e colegas de trabalho estão reunidos em torno de seu computador visualizando o serviço Web recente que você criou. Ben, um amigo de longa data, questiona se você mesmo fez a programação ou se recebeu ajuda de um profissional. Todos na sala aguardam sua resposta.
‘Sem ajuda, eu mesmo fiz isso. Você sabe que tenho alguma experiência em programação em arquiteturas de serviços da Web, principalmente com uma arquitetura simples chamada Representational State Transfer (REST) . Usando REST, posso fazer solicitações de serviço da Web entre diferentes computadores usando verbos HTTP como CREATE, READ, UPDATE e DELETE.
‘Tenho pouca experiência com arquiteturas de serviço da Web mais complexas, como Common Object Request Broker Architecture (CORBA) e Simple Object Access Protocol (SOAP). Por que você não tem um assento e eu explicarei por que REST é preferível a CORBA e SOAP, como REST é usado e seus benefícios. ‘
O que torna REST uma arquitetura preferida?
Você se lembra de estudar a arquitetura de edifícios centenários erguidos por várias culturas e sociedades em todo o mundo? Alguns desses edifícios ainda estão de pé. REST é um estilo de arquitetura que usa as mesmas bases robustas das primeiras estruturas da web, a saber: design, forma, construção e recursos.
REST, depende do protocolo HTTP para se comunicar pela rede, estabelecendo e mantendo conexões entre vários computadores em rede, ao contrário das ferramentas mais complexas como CORBA e SOAP. A arquitetura CORBA permite a comunicação em diversas plataformas, e o SOAP é igualmente complexo por ser baseado em Extensible Markup Language (XML). Como o HTTP é usado por REST, você poderia dizer que a Internet emprega uma arquitetura baseada em REST.
Recursos REST
O REST transmite informações por meio de HTTP, como fotos, videoclipes, páginas da Web e até mesmo dados de negócios detalhados na forma de gráficos ou diagramas. Todos são chamados de ‘ recursos ‘.
Uma vantagem significativa do REST sobre a concorrência é que ele fornece uma janela para os usuários acessarem os serviços da web. Muitos desenvolvedores de serviços da Web preferem REST porque a implementação é menos complexa, os serviços são mais fáceis de manter e são expansíveis. Esses serviços REST desenvolvidos são geralmente chamados de aplicativos RESTful.
Os aplicativos RESTful são criados usando características que tendem a separar o REST de outras ferramentas de desenvolvimento de serviço da Web. Várias características REST são listadas e descritas na tabela abaixo.
Características REST | Descrição |
---|---|
Sem estado | Capacidade de lidar com serviços de comunicação de rede como pares independentes (uma solicitação e sua resposta correspondente ). |
Servidor cliente | Uma arquitetura de rede na qual os nós da rede agem como um cliente (usuário) ou um servidor gerenciando serviços como: gerenciamento de arquivos, servidores de impressão e atividades de rede. |
Cache | Uma forma de armazenamento de dados onde os dados são armazenados localmente, aumentando a velocidade das operações de armazenamento e recuperação. |
Protocolo | Os aplicativos RESTful usam HTTP para criar, ler, atualizar e excluir recursos. |
Interface Uniforme | O desenvolvedor alcança todos os recursos usando HTTP para fazer solicitações GET, POST, PUT e DELETE. |
Nomes comuns | Os recursos REST são substantivos nomeados usando um Localizador Uniforme de Recursos (URL). |
Diretrizes para design de serviço da Web em uma rede REST
Aqui estão algumas diretrizes gerais que você deve considerar ao criar um serviço da Web para uso em uma rede REST:
1. Liste seus recursos usando substantivos como: ingredientes, dados de medição e recibo de pagamento.
2. Os recursos REST devem ser substantivos e não verbos, como é o caso com CORBA e SOAP. Por exemplo, crie seu URL como: http://www.menu-dinner.com/ Ingredientes / 12345 em vez de usar uma forma verbal semelhante a: http://www.menu-dinner.com/ingredients/ getingredients? Id-12345 .
3. Categorize cada recurso como ‘recuperável’ usando HTTP: GET, ou ‘modificável’ usando HTTP: POST, PUT ou DELETE.
4. Fornece hiperlinks que aprimoram os esforços de pesquisa.
5. Se os dados forem solicitados pelo usuário, forneça um formato de saída.
6. Documente seu trabalho, incluindo como seu design REST deve ser implementado.
Exemplos RESTful
Tudo bem, eu disse que não sou um especialista em REST, mas tenho alguns exemplos que você pode ver. Primeiro, vamos examinar uma solicitação POST em REST e, em seguida, examinar uma solicitação GET.
Exemplo: solicitação POST
POST http: // MyExample / RestProgram |
---|
Tipo de conteúdo: text / xml; charset = utf-8 |
---|
<? xml version = ‘2.0’ encoding = ‘utf-8?> |
---|
<MyExample> |
---|
<Example> 1 </Example> |
---|
<Title> Exemplo 1 </Title> |
---|
<Color> Vermelho </Color> |
---|
<Shape> Oval </Shape> |
---|
</MyExample> |
---|
Revendo o código acima, observe que a solicitação POST é a primeira linha para execução. Observe também que as tags de início e fim não estão incluídas. ‘Content-Type’ define a forma utilizável: ‘text with XML’ na versão listada. O título do recurso é: ‘Exemplo 1’ e sua cor e forma são especificadas como Vermelho e Oval, respectivamente.
Exemplo: solicitação GET
OBTER http://www.cnn.com/news/alert112242 |
---|
Aceitar: text / html / xhtml + xml, program / xml; |
---|
Agente do usuário: Explorer / 10.0 (Windows Pro x3) |
---|
Accept-Language: en-US |
---|
Tal como acontece com a solicitação POST, a solicitação GET é a primeira linha para execução e não há tags de início e fim. Texto com HTML é aceitável para fins de exibição e o navegador aplicável e a plataforma especificada. Finalmente, a linha Accept-Language identifica o inglês como sendo o idioma com suporte.
Resumo da lição
REST é uma arquitetura de comunicação sem estado e armazenável em cache usando o protocolo HTTP. Solicitações HTTP: GET, POST, PUT e DELETE são usados para acessar os recursos REST. Os aplicativos feitos por REST são chamados de aplicativos RESTful, em que os recursos usam apenas substantivos (não verbos) na URL. REST é uma arquitetura preferida devido à sua facilidade de uso e facilidade de manutenção do serviço da Web.