Faça cliente para serviços da web em Java

Os novos formatos de transferência de informação obrigam-nos a mudar a forma como pensamos as nossas aplicações, cada vez mais dependemos da Internet e com ela também da transmissão de dados entre locais distantes e diferentes tecnologias.

Integrar diferentes tecnologias sempre foi um desafio no passado, mas com os novos padrões e a força que o protocolo vem assumindo HTTP agora é muito mais fácil, já que não dependemos da integração de aplicativos, mas cada aplicativo possui uma interface web para ditar seus dados.

Em Java muitas vezes precisaremos acessar informações que outros aplicativos têm ou geram e, portanto, não podemos negligenciar o aspecto do conhecimento de como fazer conexões a partir de um aplicativo Java para a rede. Mas não só para as redes, também devemos saber como fazer clientes de serviços web mesmo que seja de uma forma básica já que com isso faremos o possível para não ficarmos isolados no nosso meio.

O que são serviços da web?O serviços web São aplicações encontradas em servidores que têm acesso a uma rede, podendo estar em qualquer idioma ou tecnologia, porém toda a comunicação com o "mundo exterior" é gerenciada através de HTTP e seus métodos, GET, POST, PUT, DELETE, etc.

ConexõesO interessante sobre este tipo de aplicação é a possibilidade de fazer conexões entre tecnologias totalmente diferentes, por exemplo, podemos ter um serviço web escrito em Pitão para nos levar o inventário de uma fábrica e, em seguida, em nossa aplicação em Java conectamos a ele para saber as quantidades de um produto.

Essa facilidade foi o que impulsionou sua rápida adoção nos últimos anos e tornou padrão o oferecimento de tais ferramentas quando se trata de sistemas e aplicativos de negócios. Até mesmo aplicativos pessoais, como blogs ou fóruns, estão oferecendo serviços web para facilitar a geração de aplicativos móveis e que tudo permaneça no mesmo ecossistema.

Já tendo visto um pouco sobre o assunto web services, vamos ver como eles se classificam.

Serviços REST


Esses tipos de serviços permitem a transmissão de dados por meio de HTTP, utilizando apenas os métodos deste protocolo, geralmente a comunicação requer apenas o envio de dados por meio de formulários ou JSON, alguns até recebem até XML.

É o mais popular do momento, pois a construção de clientes para consumo é muito simples e não requer muitos preparativos adicionais. Simplesmente para que nosso cliente possa lançar um pedido OBTER a uma Url do serviço podemos começar a usá-lo ou consumi-lo como também é conhecida a ação de obtenção de dados.

Serviços SOAP


O serviço SABÃO é muito mais velho que DESCANSO, e até alguns anos atrás, era a forma padrão de realizar aplicações de serviços web, sua construção requer seguir alguns protocolos em particular e é necessário gerar um arquivo XML chamado WSDL, que é onde os métodos que o cliente pode acessar são definidos.

Devido à alta complexidade de preparação dos clientes para o consumo desse tipo de serviço, sua popularidade vem diminuindo, razão pela qual a maioria das novas tecnologias não o leva em consideração. Porém, ainda existem muitos serviços existentes no mundo tecnológico que são gerenciados sob essa modalidade, portanto, mesmo que esteja caindo em desuso, ainda é necessário saber como utilizá-lo.

A complexidade deste tipo de serviço reside na preparação dos diferentes XML, e seguir os padrões de acordo com as plataformas ao pé da letra, esse tipo de motivo é o que o torna incômodo e, portanto, os desenvolvedores têm migrado para DESCANSO.

Crie um programa que se conecta usando TCP


Visto que lemos e revisamos um pouco mais profundamente o que representa a parte teórica do que eles são serviços web, vamos começar a parte prática deste tutorial fazendo um exercício muito básico que nos ajudará a entender o fluxo das coisas.

Vamos fazer uma conexão simples de nosso aplicativo através da rede usando TCP com uma equipe que está acessível e disponível nela, para isso precisaremos saber seu endereço IP e uma porta que está disponível e fora das restrições dos diferentes firewalls.

RequisitosEm primeiro lugar, vamos exigir o pacote java.net.Socket isso nos dá uma série de ferramentas que vão tornar nossas vidas mais fáceis estabelecendo conexões, obviamente o exemplo que mostramos é muito básico, mas nos dá a base para sermos capazes de criar coisas além de acordo com nossas necessidades.

Vamos criar um programa que tenta se conectar a uma máquina através de uma porta específica, porém este programa também avaliará se ocorreu algum erro ou complicação durante o processo de conexão, com isso podemos atuar com diligência e não esperar por um fatal falha Vejamos o código deste exemplo:

 import java.net.Socket; import java.net.UnknownHostException; import java.net.NoRouteToHostException; import java.net.ConnectException; classe pública ConnectionTest {public static void main (String [] argv) {String server = argv.length = = 1? argv [0]: "localhost"; porta int = 80; try (Socket sock = new Socket (servidor, porta)) {System.out.println ("- Conexão bem-sucedida a:" + servidor + "-"); } catch (UnknownHostException e) {System.err.println (servidor + "Servidor desconhecido"); Retorna; } catch (NoRouteToHostException e) {System.err.println (servidor + "Fora do escopo"); Retorna; } catch (ConnectException e) {System.err.println (servidor + "Conexão recusada"); Retorna; } catch (java.io.IOException e) {System.err.println (server + '' + e.getMessage ()); Retorna; }}}
Começamos importando o pacote java.net.Socket com isso teremos a aula Soquete que é o que usaremos mais tarde para estabelecer a conexão, se não passarmos um argumento para ele ao executar o programa, ele se conectará diretamente ao nosso computador, neste caso indicamos a porta 80, mas pode ser outra.

Colocamos a criação da instância Soquete em um bloco tentar - pegar isso nos permite avaliar as exceções se a conexão não for bem-sucedida, em vez de encerrar o programa abruptamente. Por fim, temos blocos catch diferentes, cada um com uma exceção diferente para nos dar uma ideia do que deu errado.

Para que as exceções funcionassem vimos que no início importamos o pacote java.net que usaremos neste exemplo, agora vamos ver como tudo isso fica quando executamos nosso programa. Ao executar nosso programa, vamos ver na imagem a seguir como fomos capazes de acessar nosso roteador com sucesso Wi-fi e nosso localhost:

Cliente para um serviço REST


Neste exemplo, vamos criar um pequeno cliente de serviço da web que se conectará a um servidor DESCANSO, para isso, só precisamos de um servidor que possa nos dar uma resposta ao método OBTER do HTTP, é por isso que podemos usar freegeoip.net que, dependendo do que passamos pelo URL, pode retornar um JSON com dados de qualquer página da web que desejarmos.

Vamos ver o código que criamos:

 import java.net.URL; import java.net.URLConnection; import java.io.BufferedReader; import java.io.InputStreamReader; public class ClientRest {public static void main (String [] args) lança Exceção {URLConnection conn = new URL ("http://freegeoip.net/json/www.espnf1.com") .openConnection (); try (BufferedReader is = new BufferedReader (new InputStreamReader (conn.getInputStream ()))) {String line; while ((linha = is.readLine ())! = null) {System.out.println (linha); }}}}
A primeira coisa que fazemos é importar as classes Url Y URLConnection, eles nos permitem primeiro converter uma String em um URL que pode ser interpretado por Java e segundo, faça a conexão certa. Em seguida, importamos duas bibliotecas de classes que nos permitem manipular os dados que vamos receber como uma resposta do serviço da web.

Finalmente, fazemos nossa conexão com o serviço da web de freegeoip.netNeste caso passamos para ele qualquer página que sabemos existir, desta forma podemos obter algum resultado, então armazenamos a resposta em um buffer e a lemos e passamos para um objeto String, finalmente imprimimos o conteúdo e nós obterá algo parecido com o que vemos na imagem a seguir:

PROLONGAR

Claro que esta é uma abordagem simples para podermos entender como funcionam os web services, já que não cobre o envio de parâmetros de nosso cliente, mas para isso eles podem ser documentados em Apache HttpClient, que pode dar-lhe ferramentas superiores no que diz respeito ao consumo deste tipo de serviços Web, que deixamos como tarefa.

Com isso, terminamos este tutorial, construímos alguns programas que nos ajudam a entrar no caminho para sermos capazes de dominar o serviços webCom isso já vemos como nossa mente certamente começará a imaginar os melhores usos dessas ferramentas em nossas aplicações e assim tornar as coisas muito maiores.

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave