Buscar

Aula 15 Consumindo WebService no Android Dispositivos Moveis

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

CCT0080 – Programação para Dispositivos Móveis
Aula 15: Consumindo WebService no Android
Consumindo WebService no Android
Fundamentos de WebService
Implantação cliente para consumir Webservice REST
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Fundamentos de Web Services
Conceito de Web Service e seus componentes básicos
Arquitetura e componentes
Padrões
Integração de aplicações Móvel com Web
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Fundamentos de Web Services
Conceito de Web Service e seus componentes básicos
 A web é amplamente utilizada e reconhecida principalmente por sua arquitetura robusta, escalável e tolerante a falhas. 
Quem sustenta esses fatores e lhe dá todo este poder é o protocolo HTTP (o protocolo HTTP é utilizado, em regra, quando se deseja evitar que a informação transmitida entre o cliente e o servidor seja visualizada por terceiros, como, por exemplo, no caso de compras online). 
Atualmente, muitas vezes necessitamos integrar aplicações em ambientes totalmente diferentes e os WebServices são uma das maneiras mais comuns e fáceis de integrar os diferentes sistemas. 
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Fundamentos de Web Services
Arquitetura e componentes
Está baseada na interação de três serviços:
Provedor de Serviços
Consumidor de Serviços
Registro de Serviços
A interação destes personagens envolve
as operações de publicação, pesquisa e 
ligação.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Arquitetura e Componentes
Provedor de Serviços
Entidade que cria o Web Service
Disponibiliza o serviço para ser consumido
Para isso, ele:
Descreve o serviço no formato padrão
Deve ser compreensível por qualquer
um
Publicar os detalhes em um registro
central que esteja disponível
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Arquitetura e Componentes
Consumidor de Serviços
Qualquer um que utilize o Web Service
Conhece as funcionalidades do Web Service
Recupera seus detalhes através das descrições disponibilizadas
Também obtém os mecanismos de ligação
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Arquitetura e Componentes
Registro dos Serviços
É a localização central onde o provedor de serviços pode relacionar seus Web Services
Contém informações como 
detalhe da empresa
quais serviços que ela fornece
Descrição técnica de cada um deles
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Padrões
SOA (Service – Oriented Architecture)
REST (Representation State Transfer)
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Padrões
SOA
Arquitetura Orientada a Serviços (SOA) não é uma tecnologia, não é uma metodologia, não é um serviço, mas é um conceito de arquitetura corporativo que promove a integração entre o negócio e a TI por meio de conjunto de interfaces de serviços acoplados. 
SOA é uma abordagem arquitetural corporativa que permite a criação de serviços de negócio
interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.
O SOA coloca a prestação de serviço como eixo de todo o negócio, dando destaque à gestão de serviços e ao cliente.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
SOA
SOA não é uma tecnologia. Há tanto de negócio quanto de tecnologia em SOA. As tecnologias (padrões) que dão suporte a SOA são o que a viabiliza, mas SOA não é uma tecnologia por si só.
SOA não é uma metodologia. Há várias metodologias (processos, ferramentas, métodos de trabalho) que podem ser usados para implantar SOA com sucesso. SOA não é e nemdefine alguma metodologia.
SOA pode ser considerada uma filosofia arquitetural. SOA é uma linha de pensamento que permeia a implementação de necessidades de negócio, refletida em diretrizes, políticas e metodologias corporativas, não necessariamente restritas à área de TI.
SOA não é algo que se possa comprar ou instalar.
SOA não é um webservice.
SOA não cria nada. Ela apenas sugere, propõe, define.
SOA baseia-se no conceito do uso de serviços atômicos, independentes e com baixo acoplamento.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Padrões
REST
Representational State Transfer ou somente REST, é cada vez mais usado como alternativa ao “já antigo” SOAP onde que a principal crítica a este é a burocracia, algo que REST possui em uma escala muito menor.
REST é baseado no design do protocolo HTTP, que já possui diversos mecanismos embutidos para representar recursos como código de status, representação de tipos de conteúdo, cabeçalhos, etc.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
REST
O principal nesta arquitetura são as URLs do sistema e os resources (resource é um recurso, entidade). Ele aproveita os métodos HTTP para se comunicar, que são:
GET: Solicita a representação de um determinado recurso. É definido como um método seguro e não deve ser usado para disparar uma ação (remover um usuário, por exemplo);
POST: As informações enviadas no corpo (body) da requisição são utilizadas para criar um novo recurso. Também é responsável por fazer processamentos que não são diretamente relacionados a um recurso.
DELETE: Remove um recurso. Deve retornar o status 204 caso não exista nenhum recurso para a URI especificada.
PUT: Atualiza um recurso na URI especificada. Caso o recurso não exista, ele pode criar um. A principal diferença entre POST e PUT é que o primeiro pode lidar não somente com recursos, mas também pode fazer processamento de informações.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Fundamentos de Web Services
Integração de aplicações Móvel com Web 
Com o mercado crescente de aplicativos para dispositivos móveis e os esforços das empresas por trás das plataformas em oferecer uma experiência de uso única em todos os dispositivos, torna-se cada vez mais importante que os dados não fiquem “presos” apenas nos dispositivos, mas disponíveis para uso posterior em outra plataforma.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Fundamentos de Web Services
Integração de aplicações Móvel com Web 
Por exemplo, considere um aplicativo para dispositivos Android que possibilita o armazenamento de indicadores corporais. Considerando o fato de que futuros planos para esse aplicativo envolvam a evolução do mesmo para se tornar uma plataforma de saúde, seria necessária a implementação de métodos para fazer com que informações cadastradas no smartphone do usuário pudessem estar também presentes em seu computador ou tablet. Para isso, poderia ser implementado um web service que receberia envelopes serializados SOAP e armazenaria as informações enviadas dentro desses pacotes em um banco de dados, podendo esse ser baseado em qualquer banco relacional que forneça um driver JDBC.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Conceito de Web Service do tipo REST
Características de um web service REST
Padrão JSON (JavaScript Object Notation)
Implementação cliente web service REST no Android
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Conceito de Web Service do tipo REST
Sua concepção, portanto, não era de um
protocolo, mas sim de um Design Pattern arquitetural para serviços expostos numa rede, como a internet, através do protocolo HTTP.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Características de um web service REST
GET: Solicita a representação de um determinado recurso. É definido como um método seguro e não deve ser usado para disparar uma ação (remover um usuário, por exemplo);
POST: As informações enviadas no corpo (body) da requisição são utilizadas para criar um novo recurso. Também é responsável por fazer processamentos que não são diretamente relacionados a um recurso.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Características de um web service REST
DELETE: Remove um recurso. Deve retornar o status 204 caso não exista nenhum recurso para a URI especificada.
PUT: Atualiza um recurso na URI especificada. Caso o recurso não exista, ele pode criar um. A principal diferença entre POST e PUT é que o primeiro pode lidar não somente com recursos, mas também pode fazer processamento de informações.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Padrão JSON (JavaScript Object Notation)
JSON (JavaScript Object Notation) é um modelo para armazenamento e transmissão de informações no formato texto. 
Apesar de muito simples, tem sido bastante utilizado por aplicações Web devido a sua capacidade de estruturar informações de uma forma bem mais compacta do que a conseguida pelo modelo XML, tornando mais rápido o parsing dessas informações. 
Isto explica o fato de o JSON ter sido adotado por empresas como Google e Yahoo, cujas aplicações precisam transmitir grandes volumes de dados.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Padrão JSON (JavaScript Object Notation)
A ideia utilizada pelo JSON para representar informações é tremendamente simples: 
para cada valor representado, atribui-se um nome (ou rótulo) que descreve o seu significado. 
Esta sintaxe é derivada da forma utilizada pelo JavaScript para representar informações. 
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Padrão JSON (JavaScript Object Notation)
Listagem 1: Representando o ano de 2017
"ano": 2017
Listagem 2: Representando um número real
"altura": 1.72
Listagem 3: Representando uma string
"site": “portal.estacio.br”
Listagem 4: Representando um número negativo
"temperatura": -2
Listagem 5: Representando um valor booleano
"casado": true
Listagem 6: Array de Strings
[“RJ”, “SP”, “MG”, “ES”]
Listagem 7: Matriz de Inteiros
[ [1,5], [-1,9], [1000,0] ]
Listagem 8: Objeto
{ “titulo”: “JSON x XML”, 
 “resumo”: “o duelo de dois modelos de representação de informações”,
 “ano”: 2017,
 “genero”: [“aventura”, “ação”, “ficção”] }
Listagem 9: Representando um valor nulo
"site":null
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Padrão JSON (JavaScript Object Notation)
Os dados fornecidos pelo Web Service REST costumam utilizar o formato JSON, 
O tratamento deste formato, no Android, pode ser feito com o uso de JSONObject. 
A partir da raiz pode ocorrer a navegação nos dados através de getJSONObject, e a recuperação de valores através de getString.
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Padrão JSON (JavaScript Object Notation)
String resultado = "";
try {
 JSONObject raiz = new JSONObject(readStream(in, new Integer(
 urlConnection.getHeaderField("Content-Length"))));
 resultado = "US$1.00 vale R$" + raiz.getJSONObject("rates").getString("BRL");
} catch (JSONException e) {
 resultado = "ERRO! ";
}
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
Implementação cliente para consumir Web Service REST 
Implementação cliente web service REST no Android
Desenvolver um Cliente de
Conversor de Valores
Utilizar o fixer.io
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout 
	xmlns:android=
	"http://schemas.android.com/apk/res/android"
	xmlns:app=
	"http://schemas.android.com/apk/res-auto"
	xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
	tools:context=
 "com.example.eduardo.webservice1.MainActivity">
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
activity_main.xml
 <TableRow>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="WebService"
 />
 <TextView
 android:text="Fixer IO" />
 <TextView
 android:text="Busca a Cotação " />
 <TextView
 android:text="atual das moedas" />
 </TableRow>
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
activity_main.xml
<TableRow>
 <ImageView
 android:id="@+id/imageView"
 android:layout_width="104dp"
 android:layout_height="104dp"
 android:src="@drawable/money" />
 <Button
 android:id="@+id/button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Buscar Cotaçao"
 android:onClick="conecta"
 />
</TableRow>
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
activity_main.xml
<TableRow>
 <Button
 android:id="@+id/btnCaptura"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:onClick="buscaValor"
 android:text="Pega Valor"
 android:enabled="false"
 />
</TableRow>
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
activity_main.xml
<TableRow>
 <TextView
 android:text="US$" />
 <TextView
 android:text="R$" />
 <TextView
 android:text="L$" />
 <TextView
 android:text="E$" />
</TableRow>
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
activity_main.xml
 <TableRow>
 <TextView
 android:text="1.00" />
 <TextView
 android:id="@+id/txtReal" />
 <TextView
 android:id="@+id/txtLibra" />
 <TextView
 android:id="@+id/txtEuro" />
</TableRow>
</TableLayout>
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
MainActivity.java
public class MainActivity extends AppCompatActivity implements Runnable{
 private TextView txtReal;
 private TextView txtLibra;
 private TextView txtEuro;
 private Button btnBusca;
 public String resultado="";
 public JSONObject raiz;
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState)
{
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 txtReal = (TextView) findViewById(R.id.txtReal);
 txtLibra = (TextView) findViewById(R.id.txtLibra);
 txtEuro = (TextView) findViewById(R.id.txtEuro);
 btnBusca = (Button) findViewById(R.id.btnCaptura);
}
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
MainActivity.java
 public void conecta(View v){
 new Thread(this).start();
 btnBusca.setEnabled(true);
 }
 
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
MainActivity.java
 public void buscaValor(View view){
 try {
txtReal.setText(raiz.getJSONObject("rates").getString("BRL"));
txtEuro.setText(raiz.getJSONObject("rates").getString("EUR"));
txtLibra.setText(raiz.getJSONObject("rates").getString("GBP"));
 }catch (JSONException e) {
 e.printStackTrace();
 }
 }
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
MainActivity.java
public String readStream(InputStreamReader in, int tamanho){
 char[] texto = new char[tamanho];
 try {
 in.read(texto);
 } catch (IOException e) {
 e.printStackTrace();
 }
 return new String(texto);
}
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
MainActivity.java
 public void run(){
 URL url = null;
 HttpURLConnection urlConnection = null;
 try {
 url = new URL("http://api.fixer.io/latest?base=USD");
 urlConnection = (HttpURLConnection) url.openConnection();
 urlConnection.setRequestMethod("GET");
 urlConnection.connect();
 InputStreamReader in = new InputStreamReader(urlConnection.getInputStream());
 raiz = new JSONObject(readStream(in,new Integer(urlConnection.getHeaderField("Content-Length"))));
	}
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
MainActivity.java
catch (MalformedURLException e) {
 e.printStackTrace();
 } catch (ProtocolException e) {
 e.printStackTrace();
 } catch (IOException e) {
 e.printStackTrace();
 }catch (JSONException e){
 e.printStackTrace();
 }catch (Exception e) {
 e.printStackTrace();
 } finally {
 urlConnection.disconnect();
 }
 }
}
Exemplo
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
Exemplo
É preciso dar permissão para acessar a Internet. Isso é feito colocando a linha acima no AndroidManifest.xml
Programação para Dispositivos Móveis
AULA 15: Consumindo WebService no Android
Prof. Eduardo Luiz Pareto

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando