Prévia do material em texto
Entendendo o protocolo HTTP e o conceito de web services Protocolo que permite a obtenção de recursos, como documentos HTML. É a base de qualquer troca de dados na Web e um protocolo cliente-servidor, o que significa que as requisições são iniciadas pelo destinatário, geralmente um navegador da Web. HTTP Clientes e servidores trocam mensagens individuais (ao contrário de um fluxo de dados). As mensagens enviadas pelo cliente são chamadas de solicitações (requests) e as mensagens enviadas pelo servidor chamadas de respostas (responses). Protocolo cliente-servidor HTTP é sem estado: não existe uma relação entre duas requisições sendo feitas através da mesma conexão. HTTP não tem estado Etapas da requisição http(s) Etapas da requisição http cliente servidor request{http://www.google.com} response{html+css+js} nslookup google.com Use esse comando via terminal DNS Sistema de Nomes de Domínio Etapas da requisição http cliente servidor request{ 172.217.28.238} response{html+css+js} DNS 172.217.28.238www.google.com E as portas? 80 443 22 3306 Porta 80 http Porta 443 https URL localizador uniforme de recursos URL Completa protocolo:://domínio:porta/caminho/recurso?query_string https://www.w3sc.com:443/js/tryit.asp?file=myfirst Domínio Como registrar? registro e manutenção dos nomes de domínios que usam o .br registro.br http(s) stateless Se as requisições são independentes uma das outras, como um sistema web consegue lembrar? Sistemas web utilizam os recursos de sessões e registros em cookies do navegador para lembrar Sessões e Cookies E se algo der errado na requisição? Sistemas web classificam as respostas de acordo com a situação Status Code Status Code 2xx requisição/resposta bem sucedida 3xx É necessário redirecionamento 5xx Erro no servidor 4xx Erro no Cliente Eu sou {Fulano} Como enviar dados junto a requisição? https://github.com/login https://github.com/search?q=google GET POST Integrando Sistemas E quando é preciso buscar informação de outro sistema web? SOA Arquitetura Orientada a Serviços, define uma maneira de tornar os componentes de software reutilizáveis por meio de interfaces de serviço. Essas interfaces utilizam padrões de comunicação comuns de tal modo que eles podem ser rapidamente incorporados a novos aplicativos sem a necessidade de realizar uma integração sempre. Aplicação I Banco Aplicação II Aplicação III Aplicação I Banco Aplicação II Aplicação III Interface Qual seria uma solução de interface para essa integração? API Application Programming Interface é uma interface que é consumida por uma aplicação e não por um usuário, permitindo que recursos sejam acessados sem conhecimento de sua implementação. Contrato entre Aplicações As APIs funcionam como se fossem contratos, com documentações que representam um acordo entre as partes interessadas. Se uma dessas partes enviar uma solicitação remota estruturada de uma forma específica, isso determinará como a aplicação da outra parte responderá. APIs que se comunicam por meio de redes e podem ser combinados para a execução de operações complexas, utilizando principalmente o protocolo HTTP Web Services servicodados.ibge.gov.br/api/docs/localidades cidades.ibge.gov.br Sistema Web Web Service Para facilitar a comunicação em Web Services precisamos estabelecer padronizações nas mensagens trocadas Duas padronizações utilizadas são o SOAP e o REST SOAP é um protocolo baseado em XML para troca de informações em um ambiente distribuído. Independente de linguagem, plataforma e protocolo de transporte Sendo um protocolo, possui um conjunto de regras mais rígidas, mas traz diversas vantagens. Exemplos são a extensibilidade de padrões e tratamento de erros integrado Dado a abrangência e a maior rigidez do protocolo SOAP, é adicionada à mensagem um overhead considerável, tanto por ser em XML quanto por adicionar muitas tags de meta-informação. Além disso, a serialização e desserialização das mensagens pode consumir um tempo considerável. Rest é um estilo arquitetural com regras mais flexíveis, utiliza apenas o protocolo http para comunicação, aproveitando-se dessa limitação para simplificar a comunicação Desta forma, como iremos trabalhar com Web Services, iremos adotar a padronização REST para comunicação entre sistemas. Uma API que segue os conceitos REST é considerada uma API Restful