Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMarina Assunção Cesário Alterado mais de 9 anos atrás
1
Google Data API Sandro Rama Fiorini
2
Introdução Missão Google: “organizar a informação do mundo inteiro e fazê-la universalmente acessível e útil”. Universalmente acessível Fora do contexto do navegador
3
Introdução GData API Interface básica para vários serviços Google Incorpora Arquitetura REST Atom RSS
4
Roteiro Atom REST Google GData API Operações Concorrência Autenticação Estado Bibliotecas Clientes Exemplo de Cliente
5
Atom Formato XML para publicação de informações Proposta de padrão RFC 4287 Conceitos Feeds Metadados Entradas (Entry) Extensível (metadados do feed).........
6
Example Feed A subtitle. 2003-12-13T18:30:02Z John Doe johndoe@example.com urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6 Atom-Powered Robots Run Amok urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a 2003-12-13T18:30:02Z Some text. Atom-Powered Robots Run Amok urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a 2003-12-13T18:30:02Z Some text.
7
Arquitetura REST Representational State Transfer Termo proposto no ano 2000, na tese de doutorado de Roy Fielding, um dos criadores do protocolo HTTP Modelo de arquitetura baseado em Recursos Transições de estado
8
Arquitetura REST: Princípios Estado e funcionalidade divididos em recursos Cada recurso é endereçado unicamente com um sintaxe universal (como URI) Todos os recursos dividem um interface comum que consistindo de: Um conjunto restrito de operações bem definidas Um conjunto restrito de tipos de conteúdo Baseado em um protocolo que é Cliente servidor Stateless Cacheable Dividio em camadas
9
REST: Tipos RESTful Segue todos os princípios Melhor exemplo: WWW Recursos: paginas web Transição de estado: links Protocolo HTTP Requisições GET, PUT, POST, e DELETE RESTafarian Segue alguns princípios XML RPC Cookies
10
REST: Comparação com RPC getUser() addUser() removeUser() updateUser() getLocation() addLocation() removeLocation() updateLocation() listUsers() listLocations() findLocation() findUser() http://example.com/users/ http://example.com/users/JohnDoe http://example.com/findUserForm http://example.com/locations/ http://example.com/locations/PortoAlegre http://example.com/findLocationForm GET http://example.com/users/http://example.com/users/ PUT http://example.com/users/MaryJanehttp://example.com/users/MaryJane DELETE http://example.com/users/JohnDoehttp://example.com/users/JohnDoe
11
Google GData API Arquitetura REST RESTafarian Recursos descritos em XML Atom (padrão) e RSS Suporta extensões Acesso via HTTP Requisições GET, PUT, POST, e DELETE Atom Publishing Protocol (APP)
12
GData API: GET GET /myFeed200 OK Foo 2006-01-23T16:25:00-08:00 http://www.example.com/myFeed Jo March
13
GData API: POST POST /myFeed Elizabeth Bennet liz@gmail.com Entry 1 This is my entry 201 CREATED 1 <link rel="edit“ href=“http://example.com/myFeed/1/1/” /> 2006-01-23T16:26:03-08:00 Elizabeth Bennet liz@gmail.com Entry 1 This is my entry
14
GData API: GET (consulta) GET /myFeed?q=This 200 OK Foo 2006-01-23T16:26:03-08:00 http://www.example.com/myFeed Jo March 1 2006-01-23T16:26:03-08:00 Elizabeth Bennet liz@gmail.com Entry 1 This is my entry
15
GData API: PUT PUT /myFeed/1/1/ 1 <link rel="edit“ href="http://example.com/myFeed/1/1/“ /> 2006-01-23T16:28:05-08:00 Elizabeth Bennet liz@gmail.com Entry 1 This is my first entry. 200 OK 1 <link rel="edit" href="http://example.com/myFeed/1/2/“ /> 2006-01-23T16:28:05-08:00 Elizabeth Bennet liz@gmail.com Entry 1 This is my first entry.
16
GData API: DELETE DELETE /myFeed/1/2/ 200 OK
17
Exemplo: Picasa <entry xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/' xmlns:gphoto='http://schemas.google.com/photos/2007'> Trip To Italy This was the recent trip I took to Italy. Italy public true 1152255600000 italy, vacation <category scheme='http://schemas.google.com/g/2005#kind' term='http://schemas.google.com/photos/2007#album'>
18
GData API: Consulta Modelo intencionalmente simples Consultas representadas como HTTP URIs Não existe maneira de relacionar itens Ordenação depende da implementeção Protocolo extensível Exemplo: http://www.example.com/feeds/jo?q=travel+Paris&published-min=2005-04- 19T15:30:00&published-max=2006-04-19T15:30:00
19
GData API: Concorrência Concorrência otimista Controle de versão Identificador Se um cliente tenta fazer uma alteração de uma entrada que já foi alterada, o acesso é negado. Negação de atualização: 409 Conflict Seguido do atual estado da entrada Alguns serviços não suportam esse modelo
20
GData API: Autenticação Para clientes desktop: ClientLogin Aplicativo pergunta ao usuário as suas credenciais e as envia ao Google. Google retorna um token que é utilizado nas interações seguintes Para clientes Web: AuthSub Semelhante ao ClientLogin O usuário informa as suas credenciais a um serviço web da Google Não passa pelo aplicativo web Mais seguro
21
GData API: Estado Manutenção de estado de duas formas Via Cookies Via Tokens
22
Bibliotecas Clientes Java Phyton.NET JavaScript/AJAX JSON no lugar de XML PHP
23
Java: Exemplo Classes que correspondem as entidades e tipos de dados da API com.google.gdata.data.Feed com.google.gdata.data.Entry Especializações para cada serviço com.google.gdata.data.photos.PhotoFeed Extensível
24
Aplicação de Teste (1) Blogger armazena fotos no Picasa, mas... Não permite postar fotos que já estejam no Picasa Aplicativo Java para fazer isso Mashup
25
Aplicação de Teste (2)
26
Conclusão Ótima iniciativa Mashups Abordagem pragmática Contraste com SOAP+WSDL Documentação razoável Bibliotecas cliente Biblioteca Java ainda precisa de um polimento
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.