Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Serviço REST (Android SDK)

rodrigorgs
October 10, 2012

Serviço REST (Android SDK)

rodrigorgs

October 10, 2012
Tweet

More Decks by rodrigorgs

Other Decks in Programming

Transcript

  1. MATC89: Aplicações para Dispositivos Móveis Universidade Federal da Bahia (UFBA)

    Rodrigo Rocha e Christina von Flach 2012.2 Serviços Web RESTful
  2. REST (simplificadamente) • Conjunto de princípios para comunicação entre aplicações

    • Cliente-servidor • Cada recurso tem um identificador único • Todos os recursos respondem às mesmas operações • ± como a web funciona • As implementações geralmente usam HTTP
  3. Web GET /MATC89 BD disciplinas.dcc.ufba.br <html> <strong>Aplicações para ..</strong> é

    uma disciplina do curso... oferecida pelo Departamento... ... no laboratório 1 (sala 140) </html> recurso http operação (mostrar)
  4. Serviço Web GET /MATC89 BD disciplinas.dcc.ufba.br {codigo: “MATC89”, nome: “Aplicações

    para...”, lista: “matc89t01@listas...”, local: “sala 140”} http
  5. HTTP Cada recurso é identificado por um
 URI (uniforme resource

    identifier) recursos: disciplina, aluno, sala de aula, ... URI: http://disciplinas.dcc.ufba.br/MATC89
  6. HTTP • HTTP: Requisição + Resposta • Requisição • URI

    • Operação (GET, POST, PUT, DELETE etc.) • Cabeçalho • Corpo (ex.: dados de formulário)
  7. HTTP • Resposta: • Status* (OK, Not found, Server Error

    etc.) • Corpo (ex.: HTML) • Cabeçalho
  8. HTTP • Códigos de status • 200: OK • 201:

    Created • 400: Bad Request • 404: Not Found • 500: Internal Server Error e outros...
  9. Obter lista de contatos GET /contatos status: 200 (OK) corpo:

    [{“id”: 4, “nome”: “Sicrano”, “telefone”: “123”}, {“id”: 5, “nome”: “Fulano”, “telefone”: “555”}] xyz.com.br
  10. JSON • {“chave1”: “valor1”, “chave2”: “valor2”} 
 (objeto) • [“item1”,

    “item2”, “item3”] 
 (array) • [{“nome”: “Fulano”, “telefone”: “123”},
 {“nome”: “Fulano”, “telefone”: “123”}] 
 (array de objetos) • Se preferir, pode usar XML
  11. Obter um contato GET /contatos/5 status: 200 (OK) corpo: {“id”:

    5,
 “nome”: “Fulano”,
 “telefone”: “555”} xyz.com.br
  12. Buscar contatos GET /contatos?nome=Fulano status: 200 (OK) corpo: [{“id”: 5,

    “nome”: “Fulano”, “telefone”: “555”}] xyz.com.br
  13. Resumo Verbo URI corpo O que faz GET /contatos na

    resposta lista de contatos GET /contatos/5 na resposta um contato POST /contatos ambos cria contato PUT /contatos/5 na requisição altera contato DELETE /contatos/5 nenhum apaga contato
  14. Outros tópicos • Implementação (Ruby + Sinatra + DataMapper) •

    https://github.com/rodrigorgs/contatos-rest • Relacionamento entre tabelas • http://datamapper.org/getting-started.html • Autenticação • http://www.sinatrarb.com/faq.html#auth