SUMÁRIO REST. REST + OAuth. Cliente em Java Processamento de respostas JSON



Documentos relacionados
Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

Ricardo R. Lecheta. Novatec

Pratica JFlex. Prática criando o primeiro analisador léxico

WOW Mobile Rui Miguel Miranda Ramos

Desempenho: aspectos a considerar

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1

Capítulo 3. Redes Sociais 24

Exemplo de Aplicaça o Facebook

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

REST Um Estilo de Arquitetura de Sistemas Distribuídos

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

FTP FILE F TRANSFER PROTOCOL. Tópicos

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education

Quem sou eu? Rafael Toledo. Dev Java / Android.

Sistema Eletrônico do Serviço de Informações ao Cidadão e-sic

Service Oriented Architecture SOA

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

Facebook. Java com o. Integrando Aplicações. Descubra como é fácil criar uma aplicação para rodar no Facebook. _capa

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Service Oriented Architecture SOA

Departamento de Informática

Departamento de Informática

API olx.com.br. Utilizando o protocolo OAuth 2.0

Como funciona a plataforma Superlógica? - Livro 4 de 4. Como funciona a interface de integração? Como você poderá complementar o sistema?

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

Manual de Integração SMS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

Evolução guiada por APIs. com REST para modernizar seu legado

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Web das Coisas WoT. Software: APIs para IoT. Prof. João Bosco Teixeira Junior

Aula 14 Serviços Internet (Servidor Web Apache)

Integração de sistemas utilizando Web Services do tipo REST

Criação de Aplicativos de redes sociais para Autenticação

O conteúdo das aulas pode estar distribuído em documentos de texto, telas web programadas ou na própria tela central do ambiente Moodle.

Universidade da Beira Interior. Sistemas Distribuídos /2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Figura 1: Eclipse criação de um Dynamic Web Project

Aulas Práticas. Implementação de um Proxy HTTP. O que é um proxy?

Java Persistence Query Language JPQL

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

Java para WEB com Struts 2 e Hibernate

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Documentação da API Likestore

Programação por Objectos

JSF - Controle de Acesso FERNANDO FREITAS COSTA

6127. Redes comunicação de dados. 2014/2015. Acesso à Internet.

J820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha

Universidade Federal de Juiz de Fora Ciência da Computação Sistemas Distribuídos Professor Ciro Barbosa

KEYTOOL. Ferramenta para manipular repositório de chaves

O protocolo HTTP. Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP.

Programação com Acesso a Banco de Dados

um token de requisição garante que o usuário final autorize a aplicação; um token de acesso permite que a aplicação execute as operações da API.

JSP e Servlet Princípio de MVC

SISTEMAS DISTRIBUÍDOS

Manipulação de Banco de Dados com Java 1. Objetivos

Programação II Programação para a Web. Christopher Burrows

Sistemas Distribuídos na Web. Pedro Ferreira DI - FCUL

1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...

INF1013 MODELAGEM DE SOFTWARE

Aula 03 - Projeto Java Web

Exercícios de Java Aula 24 OO Classes e Atributos

Manual de implementação da API SISeCommerce V Manual de implementação da API SISeCommerce V /21

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento Cliente-Servidor 1

JSP - JavaServer Pages

JPA: Persistência padronizada em Java

Criando e consumindo Web service REST com PHP e JSON. Palestrante: Weiberlan Garcia

Descrição: Retorna uma lista com todos os publishers disponíveis no middleware.

SISTEMAS DISTRIBUÍDOS

Executando comandos do Sistema Operacional em uma aplicação WEB Java

Universo Online. Loja de Aplicativos - API v1.0 [05/2012]

Adrian Mejia. Novatec

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Manipulação de XML JAXP - DOM

Parte I. Demoiselle Mail

Gestão de projectos na Web

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

PADRÃO PARA MONITORAMENTO DE APLICATIVOS PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ

Cronograma de Aulas 2º Módulo 11/07/2009 a 05/09/2009

Manual de Utilização da Biblioteca VisPublica

1 INTRODUÇÃO CERTIFICADO DE SEGURANÇA SSL AUTENTICAÇÃO WEB METHOD: LOGIN WEB METHOD: LISTBONDCODES...

Universidade Federal do Rio Grande do Norte

itec h- ON & E ngenharia de S oftware Joel Carvalho - 05/05/2011 Novas Tecnologias Aplicadas à Eng. de So5.

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

Transcrição:

SUMÁRIO REST Cliente em Java Processamento de respostas JSON REST + OAuth Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1

REST WEB SERVICES: CLIENTE Criar código do cliente Criar URL para o pedido http://ws.audioscrobbler.com/2.0/? method=artist.search&artist=sting&api_key=4cf23dfac51047cb72913d1507de9a25&format =json Enviar pedido Processar resultados JSON Usando biblioteca e.g. json-simple http://code.google.com/p/json-simple/ NOTA: devem adicionar jar da biblioteca ao build path do projeto no Eclipse ou à classpath quando correm da consola (java -cp.:json-simple-1.1.1.jar aula7.lastfmartistsjson Mika) Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 2

REST WEB SERVICES: CLIENTE (CONT.) URI uri = new URI("http, "ws.audioscrobbler.com,"/2.0/", "method=artist.search&artist=" + args[0] + "&api_key=4cf23dfac51047cb72913d1507de9a25&format=json", null); URL url = uri.tourl(); JSONParser parser = new JSONParser(); JSONObject res = (JSONObject) parser.parse( new InputStreamReader( url.openstream())); Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 3

REST WEB SERVICES: CLIENTE (CONT.) JSONObject result = (JSONObject) res.get("results"); JSONObject artistsm = (JSONObject) result.get( artistmatches"); JSONArray artists = (JSONArray)artistsM.get("artist"); Iterator it = artists.iterator(); while (it.hasnext()) { JSONObject artist = (JSONObject) it.next(); System.out.println( artist.get("name") + " -> " + artist.get ("url")); } Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 4

REST WEB SERVICES: SERVIDOR Suporte Java definido em: JSR 311: JAX-RS: The Java API for RESTful Web Services Aprovado em: 10 Outubro 2008 Algumas implementações Sun Jersey Apache XCF Aproximação: uso de anotações Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 5

REST WEB SERVICES: SERVIDOR (CONT.) @Path("/customerservice/") @ProduceMime("application/xml") public class CustomerService { @GET public Customers getcustomers() {... } @GET @Path("/customers/{id}") public Customer getcustomer(@pathparam("id") String id) {... } @PUT @Path("/customers/{id}") @Consumes("application/xml") public Response updatecustomer(@pathparam("id") Long id, Customer customer) {... } } Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 6

SUMÁRIO REST Cliente em Java Processamento de respostas JSON REST + OAuth Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 7

REST: CANAIS SEGUROS E AUTENTICAÇÃO Muitos serviços só funcionam sobre canais seguros e com autenticação dos clientes SSL Oauth permite obter autorização limitada para um serviço Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 8

OAUTH Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 9

PASSOS A DAR PARA CRIAR CLIENTE QUE ACEDE A SERVIÇO SEGURO Necessário criar uma conta / aplicação no servidor Dropbox: https://www.dropbox.com/developers/apps Google Drive: https://console.developers.google.com/project + criar user id (selcionar a API google drive) Esta conta permitirá obter a APIKEY e o APISECRET a usar no protocolo de autenticação Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 10

EXEMPLO: ACESSO AO DROPBOX // serviço OAuth OAuthService service = new ServiceBuilder().provider(DropBoxApi.class).apiKey(API_KEY).apiSecret(API_SECRET).scope(SCOPE).build(); // Obter Request token Token requesttoken = service.getrequesttoken(); System.out.println("Tem de obter autorizacao para a aplicacao continuar acedendo ao link:"); System.out.println(AUTHORIZE_URL + requesttoken.gettoken()); in.nextline(); // Obter access token (usualmente verifier introduzido pelo utilizador) Verifier verifier = new Verifier(requestToken.getSecret()); Token accesstoken = service.getaccesstoken(requesttoken, verifier); Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 11

EXEMPLO: ACESSO AO DROPBOX (CONT.) // pedido de listagem da directoria raiz OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.dropbox.com/1/metadata/dropbox/?list=true"); service.signrequest(accesstoken, request); Response response = request.send(); if (response.getcode()!= 200) throw new RuntimeException("Metadata response error"); JSONParser parser = new JSONParser(); JSONObject res = (JSONObject) parser.parse(response.getbody()); JSONArray items = (JSONArray) res.get("contents"); Iterator it = items.iterator(); while (it.hasnext()) { } JSONObject file = (JSONObject) it.next(); System.out.println(file.get("path")); Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 12

INFORMAÇÃO BIBLIOTECAS USADAS Biblioteca Oauth Scribe: https://github.com/fernandezpablo85/scribe-java Biblioteca json-simple: http://code.google.com/p/json-simple/ Biblioteca Apache codecs http://commons.apache.org/codec/download_codec.cgi Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 13

INFORMAÇÃO PARA ACEDER A DROPBOX API REST: https://www.dropbox.com/developers/core/docs Criar aplicação: https://www.dropbox.com/developers/apps Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 14

INFORMAÇÃO PARA ACEDER A GOOGLE DRIVE API REST: https://developers.google.com/drive/v2/reference/ Criar aplicação: https://console.developers.google.com/project Scopes: https://developers.google.com/drive/web/scopes Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 15