Recursos especiais neste artigo:
Conteúdo sobre boas práticas.
Ao se pensar na implementação de Web Services, quase que invariavelmente se imagina a construção dessas estruturas a partir do uso do protocolo SOAP. Por ser aberto e baseado em XML, este formato contribuiu de maneira significativa para a popularização de Web Services como principal instrumento de integração em tempo real de sistemas. No entanto, alternativas ao padrão SOAP existem, sendo uma das opções com maior aceitação, o modelo conhecido como REST, o qual conta com uma estrutura relativamente mais simples e de fácil utilização.
Em que situação o tema é útil
A implementação de Web Services seguindo a arquitetura REST pode, a
partir de uma série de princípios e recomendações, simplificar
consideravelmente a forma como serviços (e as funcionalidades por eles
expostas) são acessados por outras aplicações. Grandes portais como Facebook,
Twitter, Yahoo e Google enxergaram o potencial e os benefícios oferecidos por
esta alternativa, sendo que os mesmos têm enfatizado a adoção deste modelo em
muitas de suas soluções.
O surgimento de Web Services mudou profundamente a forma como as aplicações compartilham informações. Esta tecnologia viabilizou a integração em tempo real entre sistemas completamente distintos, simplificando assim, a transferência de dados entre aplicações de uma mesma empresa ou, mesmo, entre soluções de diferentes companhias.
Atualmente, grandes organizações como instituições financeiras e empresas de comércio eletrônico têm empregado Web Services em larga escala, com isto acontecendo em projetos críticos e de grande importância para as operações de tais companhias. Por serem geralmente criados em torno de formatos baseados em XML (como o protocolo SOAP – BOX 1), Web Services podem integrar sistemas concebidos nas mais diferentes plataformas, sendo este um dos principais fatores que contribuíram para sua ampla aceitação.
Do ponto de vista prático, Web Services são serviços (componentes) de software que disponibilizam funcionalidades específicas, com estas últimas podendo ser consumidas por aplicações com as mais variadas finalidades. A grande importância adquirida por essas estruturas (Web Services) motivou o surgimento de diversos padrões de modelagem e técnicas para a construção de serviços, com tais conceitos estando agrupados em um corpo de conhecimentos chamado de Arquitetura Orientada a Serviços (BOX 2).
Além do protocolo SOAP, o uso do padrão conhecido como REST corresponde à outra possível forma para implementação de Web Services. REST (sigla em inglês para “Representational State Transfer”) é uma especificação em que recursos são representados por meio de um endereço único, utilizando para isto URLs. Dados consumidos por uma aplicação sob a forma de objetos constituem exemplos de recursos. Um endereço único é formado por informações de identificação do recurso no serviço responsável por prover o mesmo, além de uma indicação da operação a ser efetuada sobre tal elemento.
Sendo a solução da Microsoft voltada à implementação de Web Services e projetos em conformidade com as práticas de SOA, a tecnologia WCF (Windows Communication Foundation) oferece amplo suporte aos padrões SOAP e REST.
A meta deste artigo é descrever, em termos gerais, as características de Web Services baseados em REST. Além disso, será abordada a criação de serviços WCF seguindo princípios desta arquitetura, através da construção de uma aplicação de exemplo.
SOAP (sigla em inglês para "Simple Object Access Protocol") é um protocolo XML empregado em trocas de mensagens entre Web Services e consumidores destes tipos de serviços. Trata-se de um dos padrões mais utilizados na implementação de Web Services, sendo suportado pelas principais plataformas de desenvolvimento da atualidade (.NET, Java, PHP, Delphi etc.)
SOA (sigla do inglês "Service Oriented Architecture" - ou Arquitetura Orientada a Serviços, em português) é um modelo de arquitetura de software empregado, basicamente, no desenvolvimento de soluções que permitam a integração entre diferentes sistemas. Seu objetivo principal consiste, em termos gerais, no atendimento de necessidades de negócios através de serviços agrupados em componentes (módulos) de software. Normalmente, a implementação deste paradigma acontece por meio da utilização de Web Services. Aplicações construídas sob esta arquitetura priorizam o reuso de software, além de buscarem a interoperabilidade entre diferentes plataformas computacionais.
O protocolo SOAP: uma visão geral dos Web Services baseados em XML
Antes de prosseguir com uma discussão mais aprofundada da arquitetura REST, é necessário analisar algumas características de Web Services que empregam o protocolo SOAP. O objetivo disto é tornar explícitas as diferenças entre estes dois modelos de implementação, de forma a enfatizar posteriormente os pontos que tornam mais simples a utilização de serviços baseados em REST.
Conforme mencionado anteriormente, o protocolo SOAP foi elaborado a partir do padrão XML, sendo este um dos fatores que possibilitaram a interoperabilidade (capacidade de se comunicar) entre aplicações concebidas nas mais diversas tecnologias (.NET, Java, mainframe).
A construção de Web Services baseados em SOAP pressupõe a existência de contratos que descrevem a estrutura destes componentes. É graças a esta característica que sistemas voltados às variadas plataformas conseguem, seguindo uma especificação de caráter genérico, acessar as funcionalidades disponibilizadas por serviços remotos.
Entre os itens que fazem parte do contrato de um Web Service, estão as operações (métodos) disponibilizadas pelo mesmo, além dos tipos (estruturas contendo dados) manipulados por estas últimas. Em termos práticos, o contrato de um serviço SOAP é gerado sob a forma de um documento XML padronizado, o qual toma por base as seguintes especificações:
· Web Services Description Language (WSDL): usado na descrição da interface (estrutura) de um serviço. Através deste padrão, aplicações consumidoras podem gerar proxies (BOX 3), a fim de utilizar as funcionalidades disponibilizadas via Web Service;
· XML Schema Definition Language (XSD): especificação que define a estrutura (schema) dos diversos tipos de objetos manipulados por um Web Service. Documentos no formato XSD estão normalmente referenciados em descrições WSDL de contratos de serviços;
· WS-Policy: permite a representação de características e requisitos a serem levados em consideração ao se utilizar os recursos fornecidos por um serviço.
Um Proxy é uma classe baseada em um padrão de projeto de mesmo nome e que oferece através da forma como se encontra estruturada, um meio para encapsular uma série de instruções complexas acionadas durante chamadas a um serviço remoto. Neste caso, essas operações são executadas apenas quando for consumida uma funcionalidade do serviço considerado, de forma a simplificar e tornar mais eficiente o processo de comunicação remota com tal componente.
A arquitetura REST
As diversas diretrizes que compõem o modelo REST surgiram ainda no ano de 2000, como parte de um trabalho acadêmico do pesquisador Roy Fielding na Universidade da Califórnia (EUA). A construção de Web Services esteve, num primeiro momento, quase que exclusivamente ligada à utilização do protocolo SOAP. Contudo, a arquitetura REST vem crescendo nos últimos anos, motivada principalmente por uma maior simplicidade na implementação de novas soluções, sobretudo quando se compara este padrão a Web Services baseados em XML.
Serviços construídos seguindo a arquitetura REST são conhecidos como RESTful Web Services, com a modelagem dessas estruturas girando em torno da ideia de “recursos”. O conceito de recurso refere-se a elementos (conjuntos de dados) dos quais uma ou mais aplicações dependem, com estas últimas executando operações de consulta, criação, atualização e exclusão de tais itens a partir de serviços desenvolvidos especificamente para este fim.
A implementação de serviços em conformidade com o padrão REST deve ser orientada pelos seguintes princípios (descritos em maior profundidade nas próximas seções):
· O uso de métodos HTTP de forma explícita;
· A exposição de recursos por meio de URIs;
· A representação de recursos empregando formatos como XML e JSON;
· Independência de estado (serviços “stateless”).
Na Figura 1 é demonstrado, de maneira genérica, um exemplo de como seria a interação entre uma aplicação financeira e um serviço hipotético de consulta a cotações de moedas estrangeiras.
Figura 1. Exemplo de interação entre serviço REST e uma aplicação genérica
...Confira outros conteúdos:
Teste unitário com NUnit
Como migrar projetos do ASP.NET MVC...
Crie relatórios com o Stimulsoft...
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.