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

Serviço REST (Android SDK)

Avatar for rodrigorgs rodrigorgs
October 10, 2012

Serviço REST (Android SDK)

Avatar for rodrigorgs

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